Ejemplo n.º 1
0
        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>();
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 6
0
        public ActiveLoginPromoButtonPM(ILoginPromoDisplaysPM i_promoDisplayPM, IStringTableManager i_stringTable, ILoginPromotionData i_data)
        {
            mPromoDisplayPM = i_promoDisplayPM;
            mStringTable    = i_stringTable;
            mData           = i_data;

            SetNameProperty();
            SetPromoVisibility(false);
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        public void GetDataForPromo_ReturnsData_WhenItExists()
        {
            systemUnderTest.ActivePromotionData = new Dictionary <string, ILoginPromotionData>()
            {
                { "SomePromo", Substitute.For <ILoginPromotionData>() }
            };

            ILoginPromotionData data = systemUnderTest.GetDataForPromo("SomePromo");

            Assert.IsNotNull(data);
        }
Ejemplo n.º 9
0
 public bool AreRewardsRemaining(ILoginPromotionData i_promoData)
 {
     if (i_promoData != null)
     {
         return(CollectCount < i_promoData.GetRewardsCount());
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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> > >());
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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();
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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));
 }
Ejemplo n.º 20
0
        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();
            }
        }