Warnings provider to access warnings text products

This commit is contained in:
Dan Paulat 2022-11-06 23:37:41 -06:00
parent d5d9285736
commit a2616b0ee0
7 changed files with 301 additions and 6 deletions

View file

@ -0,0 +1,58 @@
#include <scwx/provider/warnings_provider.hpp>
#include <gtest/gtest.h>
namespace scwx
{
namespace provider
{
static const std::string& kDefaultUrl {"https://warnings.allisonhouse.com"};
static const std::string& kAlternateUrl {"http://warnings.cod.edu"};
class WarningsProviderTest : public testing::TestWithParam<std::string>
{
};
TEST_P(WarningsProviderTest, ListFiles)
{
WarningsProvider provider(GetParam());
auto [newObjects, totalObjects] = provider.ListFiles();
EXPECT_GT(newObjects, 0);
EXPECT_GT(totalObjects, 0);
EXPECT_EQ(newObjects, totalObjects);
}
TEST_P(WarningsProviderTest, LoadUpdatedFiles)
{
WarningsProvider provider(GetParam());
auto [newObjects, totalObjects] = provider.ListFiles();
auto updatedFiles = provider.LoadUpdatedFiles();
EXPECT_GT(newObjects, 0);
EXPECT_GT(totalObjects, 0);
EXPECT_EQ(newObjects, totalObjects);
EXPECT_EQ(updatedFiles.size(), newObjects);
auto [newObjects2, totalObjects2] = provider.ListFiles();
auto updatedFiles2 = provider.LoadUpdatedFiles();
// There should be no more than 2 updated warnings files since the last query
// (assumption that the previous newest file was updated, and a new file was
// created on the hour)
EXPECT_LE(newObjects2, 2);
EXPECT_EQ(updatedFiles2.size(), newObjects2);
// The total number of objects may have changed, since the oldest file could
// have dropped off the list
EXPECT_GT(totalObjects2, 0);
}
INSTANTIATE_TEST_SUITE_P(WarningsProvider,
WarningsProviderTest,
testing::Values(kDefaultUrl, kAlternateUrl));
} // namespace provider
} // namespace scwx

View file

@ -17,7 +17,8 @@ set(SRC_COMMON_TESTS source/scwx/common/color_table.test.cpp
source/scwx/common/products.test.cpp)
set(SRC_NETWORK_TESTS source/scwx/network/dir_list.test.cpp)
set(SRC_PROVIDER_TESTS source/scwx/provider/aws_level2_data_provider.test.cpp
source/scwx/provider/aws_level3_data_provider.test.cpp)
source/scwx/provider/aws_level3_data_provider.test.cpp
source/scwx/provider/warnings_provider.test.cpp)
set(SRC_QT_CONFIG_TESTS source/scwx/qt/config/county_database.test.cpp
source/scwx/qt/config/radar_site.test.cpp)
set(SRC_QT_MANAGER_TESTS source/scwx/qt/manager/settings_manager.test.cpp)