mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-11-04 07:40:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#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 {"https://warnings.cod.edu"};
 | 
						|
 | 
						|
class WarningsProviderTest : public testing::TestWithParam<std::string>
 | 
						|
{
 | 
						|
};
 | 
						|
TEST_P(WarningsProviderTest, ListFiles)
 | 
						|
{
 | 
						|
   WarningsProvider provider(GetParam());
 | 
						|
 | 
						|
   auto [newObjects, totalObjects] = provider.ListFiles();
 | 
						|
 | 
						|
   // No objects, skip test
 | 
						|
   if (totalObjects == 0)
 | 
						|
   {
 | 
						|
      GTEST_SKIP();
 | 
						|
   }
 | 
						|
 | 
						|
   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();
 | 
						|
 | 
						|
   // No objects, skip test
 | 
						|
   if (totalObjects == 0)
 | 
						|
   {
 | 
						|
      GTEST_SKIP();
 | 
						|
   }
 | 
						|
 | 
						|
   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
 |