mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	Adding map settings
This commit is contained in:
		
							parent
							
								
									0ab89060e9
								
							
						
					
					
						commit
						bcf2d7bffc
					
				
					 7 changed files with 330 additions and 30 deletions
				
			
		|  | @ -1,4 +1,5 @@ | |||
| #include <scwx/qt/manager/settings_manager.hpp> | ||||
| #include <scwx/qt/config/radar_site.hpp> | ||||
| 
 | ||||
| #include <filesystem> | ||||
| #include <fstream> | ||||
|  | @ -17,8 +18,20 @@ static const std::string DEFAULT_SETTINGS_FILE = | |||
| static const std::string TEMP_SETTINGS_FILE = | ||||
|    std::string(SCWX_TEST_DATA_DIR) + "/json/settings/settings-temp.json"; | ||||
| 
 | ||||
| class SettingsManagerTest : public testing::Test | ||||
| { | ||||
|    virtual void SetUp() { scwx::qt::config::RadarSite::Initialize(); } | ||||
| }; | ||||
| 
 | ||||
| class DefaultSettingsTest : public testing::TestWithParam<std::string> | ||||
| { | ||||
|    virtual void SetUp() { scwx::qt::config::RadarSite::Initialize(); } | ||||
| }; | ||||
| 
 | ||||
| class BadSettingsTest : | ||||
|     public testing::TestWithParam<std::pair<std::string, std::string>> | ||||
| { | ||||
|    virtual void SetUp() { scwx::qt::config::RadarSite::Initialize(); } | ||||
| }; | ||||
| 
 | ||||
| void VerifyDefaults() | ||||
|  | @ -45,8 +58,10 @@ void CompareFiles(const std::string& file1, const std::string& file2) | |||
|    EXPECT_EQ(buffer1.str(), buffer2.str()); | ||||
| } | ||||
| 
 | ||||
| TEST(SettingsManager, CreateJson) | ||||
| TEST_F(SettingsManagerTest, CreateJson) | ||||
| { | ||||
|    scwx::qt::config::RadarSite::Initialize(); | ||||
| 
 | ||||
|    std::string filename {TEMP_SETTINGS_FILE}; | ||||
| 
 | ||||
|    // Verify file doesn't exist prior to test start
 | ||||
|  | @ -63,7 +78,7 @@ TEST(SettingsManager, CreateJson) | |||
|    EXPECT_EQ(std::filesystem::exists(filename), false); | ||||
| } | ||||
| 
 | ||||
| TEST(SettingsManager, SettingsKeax) | ||||
| TEST_F(SettingsManagerTest, SettingsKeax) | ||||
| { | ||||
|    std::string filename(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                         "/json/settings/settings-keax.json"); | ||||
|  | @ -71,6 +86,10 @@ TEST(SettingsManager, SettingsKeax) | |||
|    SettingsManager::ReadSettings(filename); | ||||
| 
 | ||||
|    EXPECT_EQ(SettingsManager::general_settings()->default_radar_site(), "KEAX"); | ||||
|    for (size_t i = 0; i < SettingsManager::map_settings()->count(); ++i) | ||||
|    { | ||||
|       EXPECT_EQ(SettingsManager::map_settings()->radar_site(i), "KEAX"); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| TEST_P(DefaultSettingsTest, DefaultSettings) | ||||
|  | @ -95,39 +114,32 @@ INSTANTIATE_TEST_SUITE_P(SettingsManager, | |||
|                                          "settings-empty-groups.json", | ||||
|                                          "settings-empty-object.json")); | ||||
| 
 | ||||
| TEST(SettingsManager, SettingsBadMinimum) | ||||
| TEST_P(BadSettingsTest, BadSettings) | ||||
| { | ||||
|    std::string minimumFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                            "/json/settings/settings-minimum.json"); | ||||
|    std::string sourceFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                           "/json/settings/settings-bad-minimum.json"); | ||||
|    std::string filename {TEMP_SETTINGS_FILE}; | ||||
|    auto& [goodFilename, badFilename] = GetParam(); | ||||
| 
 | ||||
|    const std::string goodFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                               "/json/settings/" + goodFilename); | ||||
|    const std::string sourceFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                                 "/json/settings/" + badFilename); | ||||
|    const std::string filename {TEMP_SETTINGS_FILE}; | ||||
| 
 | ||||
|    std::filesystem::copy_file(sourceFile, filename); | ||||
| 
 | ||||
|    SettingsManager::ReadSettings(filename); | ||||
| 
 | ||||
|    CompareFiles(filename, minimumFile); | ||||
|    CompareFiles(filename, goodFile); | ||||
| 
 | ||||
|    std::filesystem::remove(filename); | ||||
| } | ||||
| 
 | ||||
| TEST(SettingsManager, SettingsBadMaximum) | ||||
| { | ||||
|    std::string maximumFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                            "/json/settings/settings-maximum.json"); | ||||
|    std::string sourceFile(std::string(SCWX_TEST_DATA_DIR) + | ||||
|                           "/json/settings/settings-bad-maximum.json"); | ||||
|    std::string filename {TEMP_SETTINGS_FILE}; | ||||
| 
 | ||||
|    std::filesystem::copy_file(sourceFile, filename); | ||||
| 
 | ||||
|    SettingsManager::ReadSettings(filename); | ||||
| 
 | ||||
|    CompareFiles(filename, maximumFile); | ||||
| 
 | ||||
|    std::filesystem::remove(filename); | ||||
| } | ||||
| INSTANTIATE_TEST_SUITE_P( | ||||
|    SettingsManager, | ||||
|    BadSettingsTest, | ||||
|    testing::Values( | ||||
|       std::make_pair("settings-minimum.json", "settings-bad-minimum.json"), | ||||
|       std::make_pair("settings-maximum.json", "settings-bad-maximum.json"), | ||||
|       std::make_pair("settings-maps.json", "settings-bad-maps.json"))); | ||||
| 
 | ||||
| } // namespace manager
 | ||||
| } // namespace qt
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat