コード例 #1
0
        public Core.Data.Bonus CreateBonus(Template bonusTemplate, bool isActive = true)
        {
            var now   = DateTimeOffset.Now.ToBrandOffset(bonusTemplate.Info.Brand.TimezoneId).Date;
            var model = new CreateUpdateBonus
            {
                Id            = Guid.Empty,
                Name          = TestDataGenerator.GetRandomString(5),
                Code          = TestDataGenerator.GetRandomString(5),
                Description   = TestDataGenerator.GetRandomString(20),
                TemplateId    = bonusTemplate.Id,
                ActiveFrom    = now,
                ActiveTo      = now.AddDays(1),
                DurationStart = now,
                DurationEnd   = now.AddDays(1)
            };
            var bonusId = BonusManagementCommands.AddUpdateBonus(model);

            if (isActive)
            {
                BonusManagementCommands.ChangeBonusStatus(new ToggleBonusStatus
                {
                    Id       = bonusId,
                    IsActive = true
                });
            }

            return(BonusRepository.GetCurrentVersionBonuses().Single(b => b.Id == bonusId));
        }
コード例 #2
0
        public void Updated_bonus_is_correctly_saved_to_DB()
        {
            var template  = CreateFirstDepositTemplate(mode: IssuanceMode.AutomaticWithCode);
            var baseBonus = CreateFirstDepositBonus(isActive: false, mode: IssuanceMode.AutomaticWithCode);

            var model = new CreateUpdateBonus
            {
                Name         = TestDataGenerator.GetRandomString(),
                Code         = TestDataGenerator.GetRandomString(),
                Description  = TestDataGenerator.GetRandomString(),
                TemplateId   = template.Id,
                Id           = baseBonus.Id,
                Version      = baseBonus.Version,
                DurationType = DurationType.None,
                ActiveFrom   = DateTimeOffset.Now.ToBrandOffset(template.Info.Brand.TimezoneId).Date,
                ActiveTo     = DateTimeOffset.Now.AddDays(1).ToBrandOffset(template.Info.Brand.TimezoneId).Date
            };

            var bonusId = _bonusManagementCommands.AddUpdateBonus(model);

            var updatedBonus = BonusRepository.GetCurrentVersionBonuses().Single(a => a.Id == bonusId);

            Assert.AreEqual(1, updatedBonus.Version);
            Assert.AreEqual(model.Code, updatedBonus.Code);
        }
コード例 #3
0
        public void Template_update_updates_bonus()
        {
            var initialBonus = CreateFirstDepositBonus(false);

            var model = new CreateUpdateTemplate
            {
                Id      = initialBonus.Template.Id,
                Version = initialBonus.Template.Version,
                Rules   = new CreateUpdateTemplateRules
                {
                    RewardTiers = new List <CreateUpdateRewardTier>
                    {
                        new CreateUpdateRewardTier
                        {
                            CurrencyCode = "CAD",
                            BonusTiers   = new List <CreateUpdateTemplateTier> {
                                new CreateUpdateTemplateTier {
                                    Reward = 25
                                }
                            }
                        }
                    },
                    RewardType = BonusRewardType.Percentage
                }
            };

            _bonusManagementCommands.AddUpdateTemplate(model);

            var updatedBonus = BonusRepository.GetCurrentVersionBonuses().Single(bonus => bonus.Id == initialBonus.Id);

            Assert.AreEqual(1, updatedBonus.Version);
            Assert.AreEqual(1, updatedBonus.Template.Version);
        }
コード例 #4
0
        public void Bonus_deactivation_is_saved_to_DB()
        {
            var bonus = CreateFirstDepositBonus();

            _bonusManagementCommands.ChangeBonusStatus(new ToggleBonusStatus {
                Id = bonus.Id
            });

            var updatedBonus = BonusRepository.GetCurrentVersionBonuses().Single(a => a.Id == bonus.Id);

            Assert.False(updatedBonus.IsActive);
        }