예제 #1
0
        public void Cannot_redeem_bonus_with_unmatched_tiers()
        {
            CreateBonusWithHighDepositTiers(false);
            MakeDeposit(PlayerId, 450);

            BonusRedemptions.Should().BeEmpty();
        }
예제 #2
0
        public void Application_to_bonus_is_active_inside_Duration_only()
        {
            MakeDeposit(PlayerId);
            var bonus = CreateFirstDepositBonus();

            bonus.Template.Info.TemplateType = BonusType.ReloadDeposit;
            bonus.DurationType  = DurationType.Custom;
            bonus.DurationStart = SystemTime.Now.AddMinutes(5);
            bonus.DurationEnd   = SystemTime.Now.AddMinutes(10);

            MakeDeposit(PlayerId);
            BonusRedemptions.Should().BeEmpty();

            SystemTime.Factory = () => DateTimeOffset.Now.AddMinutes(11);

            MakeDeposit(PlayerId);
            BonusRedemptions.Should().BeEmpty();

            SystemTime.Factory = () => DateTimeOffset.Now.AddMinutes(9);

            MakeDeposit(PlayerId);
            BonusRedemptions.Should().NotBeEmpty();

            SystemTime.Factory = () => DateTimeOffset.Now;
        }
예제 #3
0
        public void System_does_not_redeem_ManualByCS_bonus_automatically()
        {
            CreateFirstDepositBonus(mode: IssuanceMode.ManualByCs);

            MakeDeposit(PlayerId);

            BonusRedemptions.Should().BeEmpty();
        }
        public void Cannot_redeem_deposit_bonus(decimal depositAmount, BonusRewardType rewardType)
        {
            CreateBonusWithBonusTiers(rewardType);

            MakeDeposit(PlayerId, depositAmount);

            BonusRedemptions.Should().BeEmpty();
        }
예제 #5
0
        public void Min_fund_in_amount_restriction_works()
        {
            _bonus.Template.Rules.RewardTiers.Single().BonusTiers.Single().From = 100;

            //depositing funds to use them for fund in
            MakeDeposit(PlayerId);
            MakeFundIn(PlayerId, _brandWalletId, 99);

            BonusRedemptions.Should().BeEmpty();
        }
예제 #6
0
        public void Bonus_is_not_issed_if_no_matching_currency_is_found()
        {
            var bonus = CreateFirstDepositBonus();

            bonus.Template.Rules.RewardTiers.Single().CurrencyCode = "ABC";

            MakeDeposit(PlayerId);

            BonusRedemptions.Should().BeEmpty();
        }
        public void First_deposit_bonus_is_applied_to_first_deposit_only()
        {
            MakeDeposit(PlayerId);

            CreateFirstDepositBonus();

            MakeDeposit(PlayerId);

            BonusRedemptions.Should().BeEmpty();
        }
        public void Reload_deposit_bonus_is_applied_to_second_and_sunsequent_deposits()
        {
            var bonus = CreateFirstDepositBonus();

            bonus.Template.Info.TemplateType = BonusType.ReloadDeposit;

            MakeDeposit(PlayerId);
            BonusRedemptions.Should().BeEmpty();

            MakeDeposit(PlayerId);
            BonusRedemptions.Should().NotBeEmpty();
        }
예제 #9
0
        public void Destination_wallet_restriction_works()
        {
            //using handler directly, 'cos MakeFundIn method does not accept invalid wallet ids
            Container.Resolve <PaymentSubscriber>().Handle(new TransferFundCreated
            {
                Amount = 100,
                DestinationWalletStructureId = Guid.NewGuid(),
                Type     = TransferFundType.FundIn,
                Status   = TransferFundStatus.Approved,
                PlayerId = PlayerId
            });

            BonusRedemptions.Should().BeEmpty();
        }
예제 #10
0
        public void Player_VIP_level_qualification()
        {
            var bonus = CreateFirstDepositBonus();

            bonus.Template.Availability.VipLevels = new List <BonusVip> {
                new BonusVip {
                    Code = "Bronze"
                }
            };

            MakeDeposit(PlayerId);

            BonusRedemptions.Should().BeEmpty(because: "Player has not qualified VIP level");
        }