public void GettingListOfActivePromoSaveData_ReturnsAsExpected() { // this test kind of sucks. I think I've learned my lesson. Nothing should have a List<T>, it should have a structure that // holds a List<T> I think, so I can easier mock its functionality Dictionary <string, ILoginPromotionData> mockActiveData = new Dictionary <string, ILoginPromotionData>(); ILoginPromotionData mockData_1 = Substitute.For <ILoginPromotionData>(); mockData_1.GetId().Returns("A"); ILoginPromotionData mockData_2 = Substitute.For <ILoginPromotionData>(); mockData_2.GetId().Returns("C"); mockActiveData.Add("A", mockData_1); mockActiveData.Add("C", mockData_2); systemUnderTest.ActivePromotionData = mockActiveData; Dictionary <string, ISingleLoginPromoProgressSaveData> mockSaveProgress = new Dictionary <string, ISingleLoginPromoProgressSaveData>(); ISingleLoginPromoProgressSaveData mockSave_1 = Substitute.For <ISingleLoginPromoProgressSaveData>(); ISingleLoginPromoProgressSaveData mockSave_2 = Substitute.For <ISingleLoginPromoProgressSaveData>(); ISingleLoginPromoProgressSaveData mockSave_3 = Substitute.For <ISingleLoginPromoProgressSaveData>(); mockSaveProgress.Add("A", mockSave_1); mockSaveProgress.Add("C", mockSave_2); mockSaveProgress.Add("B", mockSave_3); systemUnderTest.PromoProgress = mockSaveProgress; List <ISingleLoginPromoProgressSaveData> result = systemUnderTest.GetActivePromoSaveData(); Assert.Contains(mockSave_1, result); Assert.Contains(mockSave_2, result); Assert.AreEqual(2, result.Count); }
public bool ShouldShowPromoAsPopup(ISingleLoginPromoProgressSaveData i_promoProgress, ILoginPromotionData i_promoData) { bool doesHaveUI = mAllPromosPM.DoesHaveDisplayForPromo(i_promoData.GetId()); bool areRewardsRemaining = i_promoProgress.AreRewardsRemaining(i_promoData); bool hasRewardBeenClaimedToday = i_promoProgress.HasRewardBeenClaimedToday(mBackend); return(doesHaveUI && areRewardsRemaining && !hasRewardBeenClaimedToday); }
public void WhenAwardingPromoOnClient_ClientSaveDataIsUpdated() { MockBackend.GetTimeInMs().Returns(1000); ILoginPromotionData mockData = Substitute.For <ILoginPromotionData>(); ISingleLoginPromoProgressSaveData mockProgress = Substitute.For <ISingleLoginPromoProgressSaveData>(); LoginPromoPopupHelper systemUnderTest = CreateSystem(); systemUnderTest.AwardPromoOnClient(mockProgress, mockData); mockProgress.Received().OnAwarded(1000); }
public void AwardPromoOnClient(ISingleLoginPromoProgressSaveData i_promoProgress, ILoginPromotionData i_promoData) { i_promoProgress.OnAwarded(mBackend.GetTimeInMs()); IGameRewardData rewardData = i_promoData.GetRewardDataForDay(i_promoProgress.GetCollectCount()); IDungeonReward reward = mRewardSpawner.Create(rewardData); if (reward != null) { reward.Award(); } }
private void SetActiveProgressOnMockManagerWithIds(List <string> i_ids) { List <ISingleLoginPromoProgressSaveData> mockActivePromos = new List <ISingleLoginPromoProgressSaveData>(); foreach (string id in i_ids) { ISingleLoginPromoProgressSaveData mockProgress = Substitute.For <ISingleLoginPromoProgressSaveData>(); mockProgress.GetId().Returns(id); mockActivePromos.Add(mockProgress); } MockPromoManager.GetActivePromoSaveData().Returns(mockActivePromos); }
public void ShouldShowPromo_ReturnsAsExpected(bool i_doesHaveUI, bool i_hasRewardsRemaining, bool i_hasClaimedRewardToday, bool i_expected) { ISingleLoginPromoProgressSaveData mockData = Substitute.For <ISingleLoginPromoProgressSaveData>(); LoginPromoPopupHelper systemUnderTest = CreateSystem(); MockAllPromosPM.DoesHaveDisplayForPromo(Arg.Any <string>()).Returns(i_doesHaveUI); mockData.HasRewardBeenClaimedToday(MockBackend).Returns(i_hasClaimedRewardToday); mockData.AreRewardsRemaining(Arg.Any <ILoginPromotionData>()).Returns(i_hasRewardsRemaining); bool shouldShow = systemUnderTest.ShouldShowPromoAsPopup(mockData, Substitute.For <ILoginPromotionData>()); Assert.AreEqual(i_expected, shouldShow); }
private void TryToShowAndAwardNextPromo() { ISingleLoginPromoProgressSaveData promoProgress = ActivePromoSaveData[0]; ILoginPromotionData promoData = mPromoManager.GetDataForPromo(promoProgress.GetId()); ActivePromoSaveData.RemoveAt(0); if (mHelper.ShouldShowPromoAsPopup(promoProgress, promoData)) { mAllPromosPM.DisplayPromoAndHideOthers(promoProgress.GetId()); mHelper.AwardPromoOnClient(promoProgress, promoData); mHelper.AwardPromoOnServer(promoData); } else { ProcessNextPromotion(); } }