mirror of
https://github.com/electronicarts/CNC_TS_and_RA2_Mission_Editor.git
synced 2025-07-18 04:06:42 -04:00
Implemented IniMeta helpers to fetch combination of ini files .
This commit is contained in:
parent
d1a32df54b
commit
90fa8eb408
10 changed files with 308 additions and 4 deletions
70
UnitTest/CIni_Meta_Test.cpp
Normal file
70
UnitTest/CIni_Meta_Test.cpp
Normal file
|
@ -0,0 +1,70 @@
|
|||
#include "stdafx.h"
|
||||
#include "../MissionEditor/INIMeta.h"
|
||||
|
||||
#if 1
|
||||
TEST(IniFileGroup, ValidIniWithValidContentTest) {
|
||||
CIniFile iniFile1;
|
||||
CIniFile iniFile2;
|
||||
|
||||
const CString referenceList[] = {
|
||||
CString("GANCST"),
|
||||
CString("GAPOWR"),
|
||||
CString("NACNST"),
|
||||
CString("NAPOWR"),
|
||||
};
|
||||
|
||||
iniFile1.SetString("BuildingTypes", "0", "GANCST");
|
||||
iniFile1.SetString("BuildingTypes", "1", "GAPOWR");
|
||||
iniFile1.SetString("GACNST", "Strength", "1000");
|
||||
iniFile1.SetString("E2", "Strength", "100");
|
||||
|
||||
iniFile2.SetString("BuildingTypes", "2", "NACNST");
|
||||
iniFile2.SetString("BuildingTypes", "3", "NAPOWR");
|
||||
iniFile2.SetString("GACNST", "Strength", "2000");
|
||||
iniFile2.SetString("NEWIFV", "Cost", "1000");
|
||||
|
||||
IniFileGroup group;
|
||||
group.Append(iniFile1);
|
||||
group.Append(iniFile2);
|
||||
|
||||
auto const bldTypes = group.GetSection("BuildingTypes");
|
||||
auto idx = 0;
|
||||
//for (auto const& [key, val] : bldTypes) {
|
||||
for (auto it = bldTypes.begin(); it != bldTypes.end(); ++it) {
|
||||
auto const& [key, val] = *it;
|
||||
EXPECT_EQ(val, referenceList[idx++]);
|
||||
}
|
||||
|
||||
EXPECT_EQ(group.GetString("GACNST", "Strength"), "2000");
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(IniFileGroup, EmptyIniContentTest) {
|
||||
CIniFile iniFile1;
|
||||
CIniFile iniFile2;
|
||||
IniFileGroup group;
|
||||
|
||||
group.Append(iniFile1);
|
||||
group.Append(iniFile2);
|
||||
|
||||
auto const bldTypes = group.GetSection("BuildingTypes");
|
||||
auto contentCount = 0;
|
||||
for (auto it = bldTypes.begin(); it != bldTypes.end(); ++it) {
|
||||
auto const& [key, val] = *it;
|
||||
cout << key << "=" << val << endl;
|
||||
contentCount++;
|
||||
}
|
||||
|
||||
EXPECT_EQ(contentCount, 0);
|
||||
|
||||
iniFile1.SetString("BuildingTypes", "0", "GANCST");
|
||||
|
||||
contentCount = 0;
|
||||
for (auto it = bldTypes.begin(); it != bldTypes.end(); ++it) {
|
||||
auto const& [key, val] = *it;
|
||||
cout << key << "=" << val << endl;
|
||||
contentCount++;
|
||||
}
|
||||
|
||||
EXPECT_EQ(contentCount, 1);
|
||||
}
|
|
@ -27,6 +27,9 @@
|
|||
#include <iostream>
|
||||
#include <afxwin.h>
|
||||
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
#if !defined(ASSERT)
|
||||
#define ASSERT(x) if (!(x)) throw("assertion failed");
|
||||
#endif
|
|
@ -102,9 +102,9 @@
|
|||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;NOMINMAX;_CONSOLE;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)googletest\x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)googletest\x64\include;$(SolutionDir)MissionEditorPackLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
|
@ -133,11 +133,14 @@
|
|||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\MissionEditor\IniFile.cpp" />
|
||||
<ClCompile Include="..\MissionEditor\INIMeta.cpp" />
|
||||
<ClCompile Include="CIni_Meta_Test.cpp" />
|
||||
<ClCompile Include="CIni_Test.cpp" />
|
||||
<ClCompile Include="UnitTest.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\MissionEditor\IniFile.h" />
|
||||
<ClInclude Include="..\MissionEditor\INIMeta.h" />
|
||||
<ClInclude Include="StdAfx.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
|
|
@ -24,6 +24,12 @@
|
|||
<ClCompile Include="..\MissionEditor\IniFile.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CIni_Meta_Test.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\MissionEditor\INIMeta.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="StdAfx.h">
|
||||
|
@ -32,5 +38,8 @@
|
|||
<ClInclude Include="..\MissionEditor\IniFile.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\MissionEditor\INIMeta.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
Add table
Add a link
Reference in a new issue