@@ -72,29 +72,35 @@ TEST_CLASS(GameAssets_Tests)
7272 ra::data::models::AchievementModel& AddAchievement (AssetCategory nCategory, unsigned nPoints, const std::wstring& sTitle ,
7373 const std::wstring& sDescription , const std::wstring& sBadge , const std::string& sTrigger )
7474 {
75- auto & pAchievement = NewAchievement ();
76- pAchievement.SetCategory (nCategory);
77- pAchievement.SetPoints (nPoints);
78- pAchievement.SetName (sTitle );
79- pAchievement.SetDescription (sDescription );
80- pAchievement.SetBadge (sBadge );
81- pAchievement.SetTrigger (sTrigger );
82-
83- std::wstring sAuthor = L" Auth" ;
84- sAuthor .push_back (sBadge .front ());
85- pAchievement.SetAuthor (sAuthor );
75+ auto vmAchievement = std::make_unique<ra::data::models::AchievementModel>();
8676
8777 if (nCategory == AssetCategory::Local)
8878 {
89- pAchievement.UpdateLocalCheckpoint ();
79+ vmAchievement->CreateServerCheckpoint ();
80+ vmAchievement->SetID (m_nNextLocalId++);
9081 }
9182 else
9283 {
93- pAchievement.SetID (gsl::narrow_cast<uint32_t >(Count ()));
94- pAchievement.UpdateServerCheckpoint ();
84+ vmAchievement->SetID (gsl::narrow_cast<uint32_t >(Count () + 1 ));
9585 }
9686
97- return pAchievement;
87+ vmAchievement->SetCategory (nCategory);
88+ vmAchievement->SetPoints (nPoints);
89+ vmAchievement->SetName (sTitle );
90+ vmAchievement->SetDescription (sDescription );
91+ vmAchievement->SetBadge (sBadge );
92+ vmAchievement->SetTrigger (sTrigger );
93+
94+ std::wstring sAuthor = L" Auth" ;
95+ sAuthor .push_back (sBadge .front ());
96+ vmAchievement->SetAuthor (sAuthor );
97+
98+ if (nCategory != AssetCategory::Local)
99+ vmAchievement->CreateServerCheckpoint ();
100+
101+ vmAchievement->CreateLocalCheckpoint ();
102+
103+ return dynamic_cast <ra::data::models::AchievementModel&>(Append (std::move (vmAchievement)));
98104 }
99105
100106 ra::data::models::AchievementModel& AddAchievement ()
@@ -205,12 +211,12 @@ TEST_CLASS(GameAssets_Tests)
205211 {
206212 GameAssetsHarness gameAssets;
207213 gameAssets.AddAchievement (AssetCategory::Core, 5 , L" Ach1" , L" Desc1" , L" 11111" , " 1=1" );
208- gameAssets.AddAchievement (AssetCategory::Local, 5 , L" Ach2" , L" Desc2" , L" 22222" , " 2=2" );
214+ const auto & vmAchievement = gameAssets.AddAchievement (AssetCategory::Local, 5 , L" Ach2" , L" Desc2" , L" 22222" , " 2=2" );
209215 gameAssets.AddAchievement (AssetCategory::Unofficial, 5 , L" Ach3" , L" Desc3" , L" 33333" , " 3=3" );
210216
211217 gameAssets.SaveAllAssets ();
212218
213- const auto & sExpected = ra::util::String::Printf (" 0.0.0.0\n Game Title\n %u:\" 2=2\" :Ach2:Desc2::::Auth2:5:::::22222\n " , GameAssets::FirstLocalId + 1 );
219+ const auto & sExpected = ra::util::String::Printf (" 0.0.0.0\n Game Title\n %u:\" 2=2\" :Ach2:Desc2::::Auth2:5:::::22222\n " , vmAchievement. GetID () );
214220 Assert::AreEqual (sExpected , gameAssets.GetUserFile ());
215221 }
216222
@@ -746,11 +752,11 @@ TEST_CLASS(GameAssets_Tests)
746752 {
747753 GameAssetsHarness gameAssets;
748754 gameAssets.AddLeaderboard (AssetCategory::Core, L" LB1" , L" Desc1" , " 0xH1234=1" , " 0xH1234=2" , " 0xH1234=3" , " M:0xH1235" , Value::Format::Seconds);
749- gameAssets.AddLeaderboard (AssetCategory::Local, L" LB2" , L" Desc2" , " 0xH2234=1" , " 0xH2234=2" , " 0xH2234=3" , " M:0xH2235" , Value::Format::Minutes);
755+ const auto & vmLeaderboard2 = gameAssets.AddLeaderboard (AssetCategory::Local, L" LB2" , L" Desc2" , " 0xH2234=1" , " 0xH2234=2" , " 0xH2234=3" , " M:0xH2235" , Value::Format::Minutes);
750756
751757 gameAssets.SaveAllAssets ();
752758
753- const auto & sExpected = ra::util::String::Printf (" 0.0.0.0\n Game Title\n L%u:\" 0xH2234=1\" :\" 0xH2234=2\" :\" 0xH2234=3\" :\" M:0xH2235\" :MINUTES:LB2:Desc2:0\n " , GameAssets::FirstLocalId + 1 );
759+ const auto & sExpected = ra::util::String::Printf (" 0.0.0.0\n Game Title\n L%u:\" 0xH2234=1\" :\" 0xH2234=2\" :\" 0xH2234=3\" :\" M:0xH2235\" :MINUTES:LB2:Desc2:0\n " , vmLeaderboard2. GetID () );
754760 Assert::AreEqual (sExpected , gameAssets.GetUserFile ());
755761 }
756762
0 commit comments