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 }); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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(); }
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(); }