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