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 void CommonInstall() { MockStringTable = Substitute.For <IStringTableManager>(); MockData = Substitute.For <ILoginPromotionData>(); MockRewardSpawner = Substitute.For <ISingleLoginPromoRewardPM_Spawner>(); MockMessenger = Substitute.For <IMessageService>(); }
public void GetDataForPromo_ReturnsNullIfNoData() { systemUnderTest.ActivePromotionData = new Dictionary <string, ILoginPromotionData>(); ILoginPromotionData data = systemUnderTest.GetDataForPromo("SomePromo"); Assert.IsNull(data); }
public void AwardPromoOnServer(ILoginPromotionData i_promoData) { Dictionary <string, string> cloudParams = new Dictionary <string, string>(); cloudParams.Add(PROMO_ID, i_promoData.GetId()); mBackend.MakeCloudCall(BackendMethods.UPDATE_LOGIN_PROMO_PROGRESS, cloudParams, (result) => { }); }
public void AddToActivePromosIfActive(ILoginPromotionData i_promo) { bool isActive = i_promo.IsActive(mBackend.GetDateTime()); if (isActive) { ActivePromotionData.Add(i_promo.GetId(), i_promo); } }
public ActiveLoginPromoButtonPM(ILoginPromoDisplaysPM i_promoDisplayPM, IStringTableManager i_stringTable, ILoginPromotionData i_data) { mPromoDisplayPM = i_promoDisplayPM; mStringTable = i_stringTable; mData = i_data; SetNameProperty(); SetPromoVisibility(false); }
public SingleLoginPromoDisplayPM( IMessageService i_messenger, ISingleLoginPromoRewardPM_Spawner i_rewardSpawner, IStringTableManager i_stringTable, ILoginPromotionData i_data ) { mMessenger = i_messenger; mRewardSpawner = i_rewardSpawner; mStringTable = i_stringTable; mData = i_data; CreateLoginRewardPMs(); SetVisibleProperty( false ); SetTitleProperty(); SetActiveDateProperty(); }
public void GetDataForPromo_ReturnsData_WhenItExists() { systemUnderTest.ActivePromotionData = new Dictionary <string, ILoginPromotionData>() { { "SomePromo", Substitute.For <ILoginPromotionData>() } }; ILoginPromotionData data = systemUnderTest.GetDataForPromo("SomePromo"); Assert.IsNotNull(data); }
public bool AreRewardsRemaining(ILoginPromotionData i_promoData) { if (i_promoData != null) { return(CollectCount < i_promoData.GetRewardsCount()); } else { return(false); } }
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 AreRewardsRemaining_ReturnsAsExpected(int i_rewardsCollected, int i_totalRewards, bool i_expectedResult) { SingleLoginPromoProgressSaveData systemUnderTest = new SingleLoginPromoProgressSaveData(); systemUnderTest.CollectCount = i_rewardsCollected; ILoginPromotionData mockData = Substitute.For <ILoginPromotionData>(); mockData.GetRewardsCount().Returns(i_totalRewards); bool areRewardsRemaining = systemUnderTest.AreRewardsRemaining(mockData); Assert.AreEqual(i_expectedResult, areRewardsRemaining); }
public void WhenAwardingPromoOnServer_ProperBackendCall_IsMade() { ILoginPromotionData mockData = Substitute.For <ILoginPromotionData>(); mockData.GetId().Returns("TestId"); LoginPromoPopupHelper systemUnderTest = CreateSystem(); systemUnderTest.AwardPromoOnServer(mockData); MockBackend.Received().MakeCloudCall(BackendMethods.UPDATE_LOGIN_PROMO_PROGRESS, Arg.Is <Dictionary <string, string> >(x => x.ContainsKey(LoginPromoPopupHelper.PROMO_ID) && x[LoginPromoPopupHelper.PROMO_ID] == "TestId"), Arg.Any <Callback <Dictionary <string, string> > >()); }
public void PromotionNotAdded_ToActivePromos_WhenNotActive() { IBasicBackend mockBackend = Substitute.For <IBasicBackend>(); systemUnderTest.Init(mockBackend); ILoginPromotionData mockPromo = Substitute.For <ILoginPromotionData>(); mockPromo.IsActive(Arg.Any <DateTime>()).Returns(false); systemUnderTest.ActivePromotionData = new Dictionary <string, ILoginPromotionData>(); systemUnderTest.AddToActivePromosIfActive(mockPromo); Assert.AreEqual(0, systemUnderTest.ActivePromotionData.Count); }
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(); } }
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); }
private bool IsPromoActive(string i_id) { ILoginPromotionData promo = GetDataForPromo(i_id); return(promo != null); }
public void CommonInstall() { MockStringTable = Substitute.For <IStringTableManager>(); MockData = Substitute.For <ILoginPromotionData>(); MockDisplayPM = Substitute.For <ILoginPromoDisplaysPM>(); }
public IActiveLoginPromoButtonPM Create(ILoginPromotionData i_data) { return(factory.Create(i_data)); }
public ISingleLoginPromoDisplayPM Create(ILoginPromotionData i_data) { return(factory.Create(i_data)); }
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(); } }