foo(params);
void MyTestClass::TestDwlMgrAppy(){}
UpdateDownloadManager mgr; // в случае с синглтоном. mgr.apply("http://localhost:9821/config.xml");
TEST(tools, xml){ // --- заполняем файл какими то данными // фактическое содержимое сейчас не важно const XML src = GenerateTestData("config.xml"); // --- заливаем на локалхост // если все в порядке, вернется true const auto success = PostData("http://localhost:9821", src) ASSERT_EQ(true, success); // --- теперь выкачиваем файлик обратно // в случае ошибки будет выброшено исключение try{ const XML dst = DownLoad("http://localhost:9821/config.xml"); // --- убедимся, что отправленные данные // и полученные совпадают EXPECT_EQ(src, dst); } catch(const std::exception& e) { ::testing::AssertionFailure() << e.what(); }}
void UpdateDownloadManager::apply(const std::string& url){ Items dwlItems = Download(url); StoragePtr pStorage = Storage::instance(); Items localItems = pStorage->getLocal(); Items diff = compareWithLocal(localItems , dwlItems); doUpdate(diff); pStorage->addNewItems(diff);}
void MyTestClass::TestDwlMgrAppy(){ DownladManager mgr; mgr.apply(url); // Проверить каким то хреном что пошло в сторедж.}
UpdateDownloadManager::UpdateDownloadManager(IStoragePtr pStorage) : _pStorage(pStorage){}void UpdateDownloadManager::apply(const std::string& url){ Items dwlItems = Download(url); Items localItems = pStorage->getLocal(); Items diff = compareWithLocal(localItems , dwlItems); doUpdate(diff); pStorage->addNewItems(diff);}
class StorageMock : public IStorage{public:// Методы означенные ключевым словом virtual объявлены в интерфейсе. Остальные только в моке. virtual Items getLocal() override { return _someItems; } virtual void addNewItems(Items items) override { _newItems = items; } Items getNewItems() { return _newItems; }private: Items _newItems;};void MyTestClass::TestDwlMgrAppy(){ StorageMock pStorage = std::make_shared<StorageMock>(); DownladManager mgr(pStorage); mgr.apply(url); Items newItems = pStorage->getNewItems(); ASSERT_CHECK(newItems == expectedItems);}
StorageMock pStorage = std::make_shared<StorageMock>(); DownladManager mgr(pStorage); mgr.apply(url); Items newItems = pStorage->getNewItems(); ASSERT_CHECK(newItems == expectedItems);
Items newItems = DownladManager::apply(url); ASSERT_CHECK(newItems == expectedItems);
DownladManager mgr; mgr.apply(url); const auto& newItems = mgr.getNewItems(); ASSERT_CHECK(newItems == expectedItems);