Ejemplo n.º 1
0
        public RulesPage SelectRewardType(BonusRewardType rewardType)
        {
            _driver.FindElementClick(BaseXPath + "//button[contains(@data-bind, 'text: rewardTypeString')]");

            var optionText = string.Empty;

            switch (rewardType)
            {
            case BonusRewardType.Amount:
                optionText = "Fixed amount";
                break;

            case BonusRewardType.Percentage:
                optionText = "Percentage";
                break;

            case BonusRewardType.TieredAmount:
                optionText = "Tiered fixed amount";
                break;

            case BonusRewardType.TieredPercentage:
                optionText = "Tiered percentage";
                break;
            }

            _driver.FindElementClick(BaseXPath + "//ul[contains(@data-bind, 'foreach: availableRewardTypes')]//a[text()='" + optionText + "']");

            return(this);
        }
Ejemplo n.º 2
0
        public Core.Data.Bonus CreateBonusWithBonusTiers(BonusRewardType rewardType)
        {
            var bonus = CreateFirstDepositBonus();

            bonus.Template.Rules.RewardType = rewardType;
            bonus.Template.Rules.RewardTiers.Single().BonusTiers = (rewardType == BonusRewardType.TieredPercentage
                ? new List <TierBase>
            {
                new BonusTier {
                    From = 1, Reward = 0.1m, MaxAmount = 40
                },
                new BonusTier {
                    From = 101, Reward = 0.2m, MaxAmount = 50
                }
            }
                : new List <TierBase>
            {
                new BonusTier {
                    From = 1, Reward = 10
                },
                new BonusTier {
                    From = 101, Reward = 20
                },
                new BonusTier {
                    From = 201, Reward = 30
                }
            });

            return(bonus);
        }
Ejemplo n.º 3
0
        public void Reward_is_converted_to_decimal(BonusRewardType type)
        {
            var identifier = _bonusManagementCommands.AddUpdateTemplate(_model);

            _model = new CreateUpdateTemplate
            {
                Id      = identifier.Id,
                Version = identifier.Version,
                Rules   = new CreateUpdateTemplateRules
                {
                    RewardType  = type,
                    RewardTiers = new List <CreateUpdateRewardTier>
                    {
                        new CreateUpdateRewardTier {
                            BonusTiers = new List <CreateUpdateTemplateTier> {
                                new CreateUpdateTemplateTier {
                                    Reward = 69
                                }
                            }
                        }
                    }
                }
            };

            var template = _bonusMapper.MapModelToTemplate(_model);

            template.Rules.RewardTiers.Single()
            .BonusTiers.Single()
            .Reward.Should()
            .Be(0.69m);
        }
        public void Cannot_redeem_deposit_bonus(decimal depositAmount, BonusRewardType rewardType)
        {
            CreateBonusWithBonusTiers(rewardType);

            MakeDeposit(PlayerId, depositAmount);

            BonusRedemptions.Should().BeEmpty();
        }
Ejemplo n.º 5
0
        public bool Reward_type_validation_works(BonusType bonusType, BonusRewardType rewardType)
        {
            _template.Info.TemplateType = bonusType;

            _rules.RewardType    = rewardType;
            _rules.FundInWallets = _template.Info.Brand.WalletTemplates.Select(w => w.Id).ToList();
            if (rewardType == BonusRewardType.TieredAmount || rewardType == BonusRewardType.TieredPercentage)
            {
                if (bonusType == BonusType.HighDeposit)
                {
                    _rules.RewardTiers.Single().BonusTiers = new List <CreateUpdateTemplateTier>
                    {
                        new CreateUpdateTemplateTier {
                            Reward = 1, From = 1, NotificationPercentThreshold = 1
                        }
                    };
                }
                else
                {
                    _rules.RewardTiers.Single().BonusTiers = new List <CreateUpdateTemplateTier>
                    {
                        new CreateUpdateTemplateTier {
                            From = 1, Reward = 100
                        }
                    };
                }
            }
            _model.Rules = _rules;

            var validationResult = BonusQueries.GetValidationResult(_model);

            if (validationResult.IsValid == false)
            {
                Assert.True(
                    validationResult.Errors.Any(
                        error => error.ErrorMessage == ValidatorMessages.TemplateRewardTypeIsNotSupported));
            }

            return(validationResult.IsValid);
        }
Ejemplo n.º 6
0
    public static string StringFromType(BonusRewardType bonusRewardType)
    {
        string results = "";

        switch (bonusRewardType)
        {
        case BonusReward.BonusRewardType.None:
            results = "None";
            break;

        case BonusReward.BonusRewardType.Life:
            results = "Life";
            break;

        case BonusReward.BonusRewardType.Brush:
            results = "Brush";
            break;

        case BonusReward.BonusRewardType.Gems:
            results = "Gems";
            break;

        case BonusReward.BonusRewardType.Hammer:
            results = "Hammer";
            break;

        case BonusReward.BonusRewardType.Coins:
            results = "Coins";
            break;

        case BonusReward.BonusRewardType.Count:
            // Do nothing, not an actual valid reward type
            break;
        }
        return(results);
    }
Ejemplo n.º 7
0
        public void AddBonus(
            BonusType bonusType,
            string templateName,
            IssuanceMode mode,
            BonusRewardType rewardType,
            decimal depositAmountFrom,
            decimal bonusAmount,
            decimal maxBonus,
            string bonusName,
            string bonusCode,
            string description)
        {
            var  brand = _bonusRepository.Brands.Single(b => b.Id == new Guid("00000000-0000-0000-0000-000000000138"));
            Guid templateId;
            var  template = _bonusRepository.Templates.SingleOrDefault(t => t.Info.Name == templateName);

            if (template == null)
            {
                var model = new CreateUpdateTemplate
                {
                    Id   = Guid.Empty,
                    Info = new CreateUpdateTemplateInfo
                    {
                        Name             = templateName,
                        TemplateType     = bonusType,
                        BrandId          = brand.Id,
                        WalletTemplateId = brand.WalletTemplates.First().Id,
                        Mode             = mode
                    }
                };
                var identifier = _bonusManagementCommands.AddUpdateTemplate(model);
                templateId = identifier.Id;

                model = new CreateUpdateTemplate
                {
                    Id           = identifier.Id,
                    Version      = identifier.Version,
                    Availability = new CreateUpdateTemplateAvailability(),
                    Rules        = new CreateUpdateTemplateRules
                    {
                        RewardType  = rewardType,
                        RewardTiers = new List <CreateUpdateRewardTier>
                        {
                            new CreateUpdateRewardTier
                            {
                                CurrencyCode = "RMB",
                                BonusTiers   = new List <CreateUpdateTemplateTier> {
                                    new CreateUpdateTemplateTier
                                    {
                                        From   = depositAmountFrom,
                                        Reward = bonusAmount
                                    }
                                },
                                RewardAmountLimit = maxBonus
                            }
                        }
                    },
                    Wagering = new CreateUpdateTemplateWagering
                    {
                        HasWagering = true,
                        Method      = WageringMethod.Bonus,
                        Multiplier  = 2
                    },
                    Notification = new CreateUpdateTemplateNotification()
                };
                _bonusManagementCommands.AddUpdateTemplate(model);
            }
            else
            {
                templateId = template.Id;
            }

            var bonus = _bonusRepository.Bonuses.SingleOrDefault(b => b.Name == bonusName);

            if (bonus == null)
            {
                var startDate = new DateTime(2016, 4, 26, 0, 0, 0);
                var endDate   = new DateTime(2016, 12, 31, 0, 0, 0);
                var bonusId   = _bonusManagementCommands.AddUpdateBonus(new CreateUpdateBonus
                {
                    Id            = Guid.Empty,
                    Name          = bonusName,
                    Code          = bonusCode,
                    Description   = description,
                    TemplateId    = templateId,
                    ActiveFrom    = startDate,
                    ActiveTo      = endDate,
                    DurationStart = startDate,
                    DurationEnd   = endDate
                });

                if (bonusType == BonusType.FirstDeposit && mode == IssuanceMode.Automatic)
                {
                    return;
                }

                _bonusManagementCommands.ChangeBonusStatus(new ToggleBonusStatus
                {
                    Id       = bonusId,
                    IsActive = true
                });
            }
        }