コード例 #1
0
        public void Referer_can_claim_2_different_bonus_redemptions()
        {
            var bonus = CreateBonusWithReferFriendTiers();

            bonus.Template.Info.Mode = IssuanceMode.ManualByPlayer;
            CompleteReferAFriendRequirments(PlayerId);
            bonus.IsActive = false;

            var bonus2 = CreateBonusWithReferFriendTiers();

            bonus2.Template.Info.Mode = IssuanceMode.ManualByPlayer;
            CompleteReferAFriendRequirments(PlayerId);
            bonus.IsActive = true;

            var bonusPlayer = BonusRepository.GetLockedPlayer(PlayerId);

            bonusPlayer.BonusesRedeemed.Count.Should().Be(2);
            bonusPlayer.BonusesRedeemed.All(br => br.Amount == 10).Should().BeTrue();

            BonusCommands.ClaimBonusRedemption(new ClaimBonusRedemption
            {
                PlayerId     = PlayerId,
                RedemptionId = bonusPlayer.BonusesRedeemed.ElementAt(0).Id
            });
            BonusCommands.ClaimBonusRedemption(new ClaimBonusRedemption
            {
                PlayerId     = PlayerId,
                RedemptionId = bonusPlayer.BonusesRedeemed.ElementAt(1).Id
            });
        }
コード例 #2
0
        public void Redemptions_are_not_created_if_all_reward_tiers_were_redeemed_this_month()
        {
            CreateBonusWithHighDepositTiers(false);
            MakeDeposit(PlayerId, 1000);
            MakeDeposit(PlayerId, 1000);

            BonusRepository.GetLockedPlayer(PlayerId).BonusesRedeemed.Count.Should().Be(2);
        }
コード例 #3
0
        public void Bonus_redemption_is_Pending_with_Active_rollover_after_fulfilling_qualification()
        {
            MakeDeposit(PlayerId);

            var bonusRedemption = BonusRepository.GetLockedPlayer(PlayerId).BonusesRedeemed.Single();

            bonusRedemption.ActivationState.Should().Be(ActivationStatus.Pending);
            bonusRedemption.RolloverState.Should().Be(RolloverStatus.Active);
        }
コード例 #4
0
        public void Reward_threshold_is_null_if_player_deposited_more_then_requires_last_tier()
        {
            var bonus  = CreateBonusWithHighDepositTiers(false);
            var player = BonusRepository.GetLockedPlayer(PlayerId);

            MakeDeposit(PlayerId, 1100);

            var bonusRewardThreshold = new Core.Entities.Bonus(bonus).CalculateRewardThreshold(player);

            Assert.Null(bonusRewardThreshold);
        }
コード例 #5
0
        public void Cannot_redeem_refer_friend_bonus_with_wager_requirement_not_met()
        {
            CreateBonusWithReferFriendTiers();
            var newPlayer = CreatePlayer(PlayerId);

            MakeDeposit(newPlayer.Id);

            PlaceAndLoseBet(90, newPlayer.Id);

            var redemption = BonusRepository.GetLockedPlayer(PlayerId).BonusesRedeemed.Single();

            redemption.ActivationState.Should().Be(ActivationStatus.Pending);
        }
コード例 #6
0
        public void Reward_threshold_is_calculated_correctly()
        {
            var bonus  = CreateBonusWithHighDepositTiers(false);
            var player = BonusRepository.GetLockedPlayer(PlayerId);

            MakeDeposit(PlayerId, 950);

            var bonusRewardThreshold = new Core.Entities.Bonus(bonus).CalculateRewardThreshold(player);

            Assert.AreEqual(1000, bonusRewardThreshold.DepositAmountRequired);
            Assert.AreEqual(100, bonusRewardThreshold.BonusAmount);
            Assert.AreEqual(50, bonusRewardThreshold.RemainingAmount);
        }
コード例 #7
0
        public void Playing_beyound_minimal_rollover_does_not_create_additional_bonus_redemptions()
        {
            CreateBonusWithReferFriendTiers();

            var referredPlayer = CreatePlayer(PlayerId);

            MakeDeposit(referredPlayer.Id);
            PlaceAndWinBet(200, 200, referredPlayer.Id);
            PlaceAndWinBet(200, 200, referredPlayer.Id);

            var bonusPlayer = BonusRepository.GetLockedPlayer(PlayerId);

            bonusPlayer.BonusesRedeemed.Count.Should().Be(1);
        }
コード例 #8
0
        public void Cannot_redeem_refer_friend_bonus_with_min_first_deposit_requirement_not_met()
        {
            var bonus = CreateBonusWithReferFriendTiers();

            bonus.Template.Rules.ReferFriendMinDepositAmount = 300;
            var newPlayer = CreatePlayer(PlayerId);

            MakeDeposit(newPlayer.Id);
            PlaceAndLoseBet(90, newPlayer.Id);

            var redemption = BonusRepository.GetLockedPlayer(PlayerId).BonusesRedeemed.Single();

            redemption.ActivationState.Should().Be(ActivationStatus.Pending);
        }
コード例 #9
0
        public void Can_redeem_refer_friend_bonus_of_matched_tier()
        {
            CreateBonusWithReferFriendTiers();

            var bonusPlayer = BonusRepository.GetLockedPlayer(PlayerId);

            for (var i = 1; i <= 9; i++)
            {
                CompleteReferAFriendRequirments(PlayerId);

                var referRedemption = bonusPlayer.BonusesRedeemed.ElementAt(i - 1);
                Assert.AreEqual(ActivationStatus.Activated, referRedemption.ActivationState);
                Assert.AreEqual(GetExpectedRedemptionAmount(i), referRedemption.Amount);
            }
        }
コード例 #10
0
        public void Can_redeem_refer_friend_bonus_with_exact_matched_tier()
        {
            var referTier = new BonusTier
            {
                From   = 1,
                Reward = 10
            };
            var bonus = CreateBonusWithReferFriendTiers();

            bonus.Template.Rules.RewardTiers.Single().BonusTiers.Clear();
            bonus.Template.Rules.RewardTiers.Single().BonusTiers.Add(referTier);

            CompleteReferAFriendRequirments(PlayerId);

            var bonusPlayer     = BonusRepository.GetLockedPlayer(PlayerId);
            var referRedemption = bonusPlayer.BonusesRedeemed.SingleOrDefault(x => x.ActivationState == ActivationStatus.Activated);

            Assert.NotNull(referRedemption);
            Assert.AreEqual(referTier.Reward, referRedemption.Amount);
        }
コード例 #11
0
        public void Can_not_get_2_refer_a_friend_redemptions_using_1_referred()
        {
            //Getting bonus #1
            var bonus          = CreateBonusWithReferFriendTiers();
            var referredPlayer = CreatePlayer(PlayerId);

            MakeDeposit(referredPlayer.Id);
            PlaceAndWinBet(200, 200, referredPlayer.Id);
            bonus.IsActive = false;

            //Trying to get bonus #2
            bonus = CreateBonusWithReferFriendTiers();
            bonus.Template.Rules.ReferFriendWageringCondition = 2;
            MakeDeposit(referredPlayer.Id, 201);
            PlaceAndWinBet(201, 201, referredPlayer.Id);

            var bonusPlayer = BonusRepository.GetLockedPlayer(PlayerId);

            bonusPlayer.BonusesRedeemed.Count.Should().Be(1);
        }
コード例 #12
0
        public void Bet_outcome_decreases_RolloverLeft_of_bonus_redemption_that_was_created_first()
        {
            var bonus2 = CreateFirstDepositBonus();

            bonus2.Template.Rules.RewardTiers.Single().BonusTiers.Single().Reward = 100;
            bonus2.Template.Wagering.HasWagering = true;
            bonus2.Template.Wagering.Multiplier  = 3m;

            MakeDeposit(PlayerId, 400);

            var redemption1 = BonusRedemptions.First();
            var redemption2 = BonusRedemptions.Last();

            BonusRepository.GetLockedPlayer(PlayerId).Data.Wallets.First().BonusesRedeemed = new List <BonusRedemption> {
                redemption2, redemption1
            };
            PlaceAndLoseBet(50, PlayerId);

            redemption1.Contributions.SingleOrDefault(c => c.Type == ContributionType.Bet).Should().NotBeNull();
            redemption2.Contributions.Should().BeEmpty();
        }
コード例 #13
0
        public void Referer_tiers_are_bonus_dependent()
        {
            var bonus1 = CreateBonusWithReferFriendTiers();

            CompleteReferAFriendRequirments(PlayerId);
            bonus1.IsActive = false;

            var bonus2 = CreateBonusWithReferFriendTiers();

            bonus2.Template.Rules.RewardTiers.Single().BonusTiers = new List <TierBase>
            {
                new BonusTier {
                    From = 1, Reward = 10
                }
            };
            CompleteReferAFriendRequirments(PlayerId);
            bonus1.IsActive = true;

            var bonusPlayer = BonusRepository.GetLockedPlayer(PlayerId);

            bonusPlayer.BonusesRedeemed.Count.Should().Be(2);
            bonusPlayer.BonusesRedeemed.All(br => br.Amount == 10).Should().BeTrue();
        }