mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 04:50:06 +00:00 
			
		
		
		
	AWS Level 3 Data Provider
This commit is contained in:
		
							parent
							
								
									c5c54fbfa2
								
							
						
					
					
						commit
						70b8f78eb5
					
				
					 7 changed files with 259 additions and 1 deletions
				
			
		
							
								
								
									
										91
									
								
								test/source/scwx/provider/aws_level3_data_provider.test.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								test/source/scwx/provider/aws_level3_data_provider.test.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,91 @@ | |||
| #include <scwx/provider/aws_level3_data_provider.hpp> | ||||
| 
 | ||||
| #include <gtest/gtest.h> | ||||
| 
 | ||||
| namespace scwx | ||||
| { | ||||
| namespace provider | ||||
| { | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, FindKeyFixed) | ||||
| { | ||||
|    using namespace std::chrono; | ||||
|    using sys_days = time_point<system_clock, days>; | ||||
| 
 | ||||
|    const auto date = sys_days {2021y / May / 27d}; | ||||
|    const auto time = date + 17h + 59min; | ||||
| 
 | ||||
|    AwsLevel3DataProvider provider("KLSX", "N0Q"); | ||||
| 
 | ||||
|    provider.ListObjects(date); | ||||
|    std::string key = provider.FindKey(time); | ||||
| 
 | ||||
|    EXPECT_EQ(key, "LSX_N0Q_2021_05_27_17_57_17"); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, FindKeyNow) | ||||
| { | ||||
|    AwsLevel3DataProvider provider("KLSX", "N0B"); | ||||
| 
 | ||||
|    provider.Refresh(); | ||||
|    std::string key = provider.FindKey(std::chrono::system_clock::now()); | ||||
| 
 | ||||
|    EXPECT_GT(key.size(), 0); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, LoadObjectByKey) | ||||
| { | ||||
|    const std::string key = "LSX_N0Q_2021_05_27_17_57_17"; | ||||
| 
 | ||||
|    AwsLevel3DataProvider provider("KLSX", "N0Q"); | ||||
| 
 | ||||
|    auto file = provider.LoadObjectByKey(key); | ||||
| 
 | ||||
|    EXPECT_NE(file, nullptr); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, Refresh) | ||||
| { | ||||
|    AwsLevel3DataProvider provider("KLSX", "N0B"); | ||||
| 
 | ||||
|    size_t newObjects = provider.Refresh(); | ||||
| 
 | ||||
|    EXPECT_GT(newObjects, 0); | ||||
|    EXPECT_GT(provider.cache_size(), 0); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, TimePointValid) | ||||
| { | ||||
|    using namespace std::chrono; | ||||
|    using sys_days = time_point<system_clock, days>; | ||||
| 
 | ||||
|    constexpr auto expectedTime = | ||||
|       sys_days {2022y / April / 30d} + 17h + 27min + 34s; | ||||
| 
 | ||||
|    auto time = | ||||
|       AwsLevel3DataProvider::GetTimePointFromKey("LSX_N0Q_2022_04_30_17_27_34"); | ||||
| 
 | ||||
|    EXPECT_EQ(time, expectedTime); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, TimePointInvalid) | ||||
| { | ||||
|    constexpr std::chrono::system_clock::time_point expectedTime {}; | ||||
| 
 | ||||
|    auto time = AwsLevel3DataProvider::GetTimePointFromKey( | ||||
|       "LSX_N0Q_2022-04-30_17-27-34"); | ||||
| 
 | ||||
|    EXPECT_EQ(time, expectedTime); | ||||
| } | ||||
| 
 | ||||
| TEST(AwsLevel3DataProvider, TimePointBadKey) | ||||
| { | ||||
|    constexpr std::chrono::system_clock::time_point expectedTime {}; | ||||
| 
 | ||||
|    auto time = AwsLevel3DataProvider::GetTimePointFromKey("???"); | ||||
| 
 | ||||
|    EXPECT_EQ(time, expectedTime); | ||||
| } | ||||
| 
 | ||||
| } // namespace provider
 | ||||
| } // namespace scwx
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat