public Licensee CreateLicensee(int brandCount = 1)
        {
            var licensee = new Licensee
            {
                Id = Guid.NewGuid(),
                AllowedBrandCount = brandCount,
                Status            = LicenseeStatus.Active
            };

            BrandRepository.Licensees.Add(licensee);
            BrandRepository.SaveChanges();

            return(licensee);
        }
Esempio n. 2
0
        public Brand CreateBrand(
            Licensee licensee = null,
            Country country   = null,
            Culture culture   = null,
            Currency currency = null,
            bool isActive     = false)
        {
            licensee = licensee ?? _brandRepository.Licensees.FirstOrDefault() ?? CreateLicensee();

            var products = licensee.Products;

            country  = country ?? licensee.Countries.First();
            culture  = culture ?? licensee.Cultures.First();
            currency = currency ?? licensee.Currencies.First();

            var brandId = CreateBrand(licensee, PlayerActivationMethod.Automatic);

            CreateWallet(licensee.Id, brandId, products.Select(x => x.ProductId).ToArray());
            AssignCountry(brandId, country.Code);
            AssignCurrency(brandId, currency.Code);
            _brandRepository.SaveChanges();
            AssignCulture(brandId, culture.Code);
            AssignProducts(brandId, products.Select(x => x.ProductId).ToArray());
            CreateRiskLevel(brandId);
            AssignBrandCredentials(brandId);

            _paymentTestHelper.CreateBank(brandId, country.Code);
            _paymentTestHelper.CreateBankAccount(brandId, currency.Code);
            _paymentTestHelper.CreatePaymentGatewaySettings(brandId);
            _paymentTestHelper.CreatePaymentLevel(brandId, currency.Code);

            CreateVipLevel(brandId);

            if (isActive)
            {
                _brandCommands.ActivateBrand(new ActivateBrandRequest
                {
                    BrandId = brandId,
                    Remarks = TestDataGenerator.GetRandomString()
                });
            }

            return(_brandQueries.GetBrandOrNull(brandId));
        }
        public Core.Brand.Interface.Data.Brand CreateBrand(Licensee licensee)
        {
            var suffix = TestDataGenerator.GetRandomAlphabeticString(3);

            var brand = new Core.Brand.Interface.Data.Brand
            {
                Id         = Guid.NewGuid(),
                Code       = "Code" + suffix,
                Name       = "Name" + suffix,
                Licensee   = licensee,
                Status     = BrandStatus.Active,
                TimezoneId = "Pacific Standard Time"
            };

            licensee.Brands.Add(brand);

            BrandRepository.Brands.Add(brand);
            BrandRepository.SaveChanges();

            return(brand);
        }
Esempio n. 4
0
        public override void BeforeEach()
        {
            base.BeforeEach();

            SecurityRepository = Container.Resolve <ISecurityRepository>();
            BrandRepository    = Container.Resolve <IBrandRepository>();

            SecurityTestHelper = Container.Resolve <SecurityTestHelper>();
            SecurityTestHelper.PopulatePermissions();
            SecurityTestHelper.CreateAndSignInSuperAdmin();

            BrandQueries = Container.Resolve <BrandQueries>();

            BrandHelper = Container.Resolve <BrandTestHelper>();
            Brand       = BrandHelper.CreateBrand();
            SecurityTestHelper.CreateBrand(Brand.Id, Brand.LicenseeId, Brand.TimezoneId);
            Licensee = Brand.Licensee;

            AdminCommands = Container.Resolve <IAdminCommands>();
            AdminQueries  = Container.Resolve <IAdminQueries>();
        }
Esempio n. 5
0
        public Guid CreateBrand(Licensee licensee, PlayerActivationMethod playerActivationMethod)
        {
            var brandId = _brandCommands.AddBrand(new AddBrandRequest
            {
                Code                   = TestDataGenerator.GetRandomString(),
                InternalAccounts       = 1,
                EnablePlayerPrefix     = true,
                PlayerPrefix           = TestDataGenerator.GetRandomString(3),
                Licensee               = licensee.Id,
                Name                   = TestDataGenerator.GetRandomString(),
                Email                  = TestDataGenerator.GetRandomEmail(),
                SmsNumber              = TestDataGenerator.GetRandomPhoneNumber().Replace("-", string.Empty),
                WebsiteUrl             = TestDataGenerator.GetRandomWebsiteUrl(),
                PlayerActivationMethod = playerActivationMethod,
                TimeZoneId             = TestDataGenerator.GetRandomTimeZone().Id,
                Type                   = BrandType.Integrated
            });

            licensee.Brands.Add(_brandRepository.Brands.Single(b => b.Id == brandId));

            return(brandId);
        }
Esempio n. 6
0
        public override void BeforeEach()
        {
            base.BeforeEach();

            FakeBrandRepository     = Container.Resolve <FakeBrandRepository>();
            FakePlayerRepository    = Container.Resolve <FakePlayerRepository>();
            FakePaymentRepository   = Container.Resolve <FakePaymentRepository>();
            FakeEventRepository     = Container.Resolve <FakeEventRepository>();
            FakeSecurityRepository  = Container.Resolve <FakeSecurityRepository>();
            FakeMessagingRepository = Container.Resolve <FakeMessagingRepository>();

            for (int i = 0; i < TestDataGenerator.CountryCodes.Length; i++)
            {
                FakeBrandRepository.Countries.Add(new Country {
                    Code = TestDataGenerator.CountryCodes[i]
                });
            }

            for (int i = 0; i < TestDataGenerator.CurrencyCodes.Length; i++)
            {
                FakeBrandRepository.Currencies.Add(new Currency {
                    Code = TestDataGenerator.CurrencyCodes[i]
                });
            }

            for (int i = 0; i < TestDataGenerator.CultureCodes.Length; i++)
            {
                FakeBrandRepository.Cultures.Add(new Culture {
                    Code = TestDataGenerator.CultureCodes[i]
                });
            }

            var brandId = new Guid("00000000-0000-0000-0000-000000000138");
            var brand   = new Core.Brand.Interface.Data.Brand {
                Id = brandId, Name = "138", Status = BrandStatus.Active, TimezoneId = "Pacific Standard Time"
            };

            for (int i = 0; i < TestDataGenerator.CurrencyCodes.Length; i++)
            {
                var currencyCode = TestDataGenerator.CurrencyCodes[i];

                brand.BrandCurrencies.Add(new BrandCurrency
                {
                    BrandId               = brand.Id,
                    Brand                 = brand,
                    CurrencyCode          = currencyCode,
                    Currency              = FakeBrandRepository.Currencies.Single(x => x.Code == currencyCode),
                    DefaultPaymentLevelId = currencyCode == "CAD"
                        ? new Guid("E1E600D4-0729-4D5C-B93E-085A94B55B33")
                        : new Guid("1ED97A2B-EBA2-4B68-A70C-18A7070908F9")
                });
            }
            for (int i = 0; i < TestDataGenerator.CountryCodes.Length; i++)
            {
                var countryCode = TestDataGenerator.CountryCodes[i];

                brand.BrandCountries.Add(new BrandCountry
                {
                    BrandId     = brand.Id,
                    Brand       = brand,
                    CountryCode = countryCode,
                    Country     = FakeBrandRepository.Countries.Single(x => x.Code == countryCode)
                });
            }
            for (int i = 0; i < TestDataGenerator.CultureCodes.Length; i++)
            {
                var cultureCode = TestDataGenerator.CultureCodes[i];

                brand.BrandCultures.Add(new BrandCulture
                {
                    BrandId     = brand.Id,
                    Brand       = brand,
                    CultureCode = cultureCode,
                    Culture     = FakeBrandRepository.Cultures.Single(x => x.Code == cultureCode)
                });
            }
            var walletTemplate = new WalletTemplate()
            {
                Brand       = brand,
                Id          = Guid.NewGuid(),
                IsMain      = true,
                Name        = "Main wallet",
                DateCreated = DateTimeOffset.UtcNow,
                CreatedBy   = Guid.NewGuid()
            };

            brand.WalletTemplates.Add(walletTemplate);
            brand.DefaultCulture  = brand.BrandCultures.First().Culture.Code;
            brand.DefaultCurrency = brand.BrandCurrencies.First().Currency.Code;
            var vipLevel = new Core.Brand.Interface.Data.VipLevel {
                Name = "Standard", BrandId = brandId
            };

            brand.DefaultVipLevelId = vipLevel.Id;
            brand.DefaultVipLevel   = vipLevel;

            FakeBrandRepository.WalletTemplates.Add(walletTemplate);
            var playerVipLevel = new VipLevel
            {
                Id      = Guid.NewGuid(),
                Name    = "Standard",
                BrandId = brandId
            };

            brand.DefaultVipLevelId = playerVipLevel.Id;

            FakeBrandRepository.Brands.Add(brand);
            var playerBrand = new Core.Common.Data.Player.Brand {
                Id = brand.Id, TimezoneId = brand.TimezoneId
            };

            FakePlayerRepository.Brands.Add(playerBrand);
            FakePlayerRepository.VipLevels.Add(playerVipLevel);

            FakeMessagingRepository.VipLevels.Add(new Core.Messaging.Data.VipLevel
            {
                Id   = playerVipLevel.Id,
                Name = playerVipLevel.Name
            });

            FakeMessagingRepository.SaveChanges();

            playerBrand.DefaultVipLevelId = playerVipLevel.Id;
            FakePlayerRepository.SaveChanges();

            foreach (var questionid in TestDataGenerator.SecurityQuestions)
            {
                FakePlayerRepository.SecurityQuestions.Add(new SecurityQuestion
                {
                    Id       = new Guid(questionid),
                    Question = TestDataGenerator.GetRandomString()
                });
            }

            Container.Resolve <FakeGameRepository>().Brands.Add(new Core.Game.Interface.Data.Brand
            {
                Id         = new Guid("00000000-0000-0000-0000-000000000138"),
                TimezoneId = TestDataGenerator.GetRandomTimeZone().Id
            });

            var bankAccountType = new BankAccountType
            {
                Id   = new Guid("00000000-0000-0000-0000-000000000100"),
                Name = "Main"
            };


            FakePaymentRepository.Brands.Add(new Core.Payment.Data.Brand
            {
                Id         = new Guid("00000000-0000-0000-0000-000000000138"),
                TimezoneId = "Pacific Standard Time"
            });

            FakePaymentRepository.BankAccountTypes.Add(bankAccountType);

            var bank = new Bank
            {
                Id          = Guid.NewGuid(),
                BankId      = "SE45",
                BankName    = "Bank of Canada",
                BrandId     = brandId,
                CountryCode = "Canada",
                Created     = DateTime.Now,
                CreatedBy   = "initializer"
            };

            FakePaymentRepository.Banks.Add(bank);

            var cadAccountId = new Guid("B6755CB9-8F9A-4EBA-87E0-1ED5493B7534");

            FakePaymentRepository.BankAccounts.Add(
                new BankAccount
            {
                Id            = cadAccountId,
                AccountId     = "BoC1",
                AccountName   = "John Doe",
                AccountNumber = "SE45 0583 9825 7466",
                AccountType   = bankAccountType,
                Bank          = bank,
                Branch        = "Main",
                Province      = "Vancouver",
                CurrencyCode  = "CAD",
                Created       = DateTime.Now,
                CreatedBy     = "Initializer",
                Status        = BankAccountStatus.Active,
                Updated       = DateTime.Now,
                UpdatedBy     = "Initializer"
            }
                );

            bankAccountType = new BankAccountType
            {
                Id   = new Guid("00000000-0000-0000-0000-000000000101"),
                Name = "VIP"
            };
            FakePaymentRepository.BankAccountTypes.Add(bankAccountType);

            bank = new Bank
            {
                Id          = Guid.NewGuid(),
                BankId      = "70AC",
                BankName    = "Hua Xia Bank",
                BrandId     = brandId,
                CountryCode = "China",
                Created     = DateTime.Now,
                CreatedBy   = "initializer"
            };
            FakePaymentRepository.Banks.Add(bank);

            var rmbAccountId = new Guid("13672261-70AC-46E3-9E62-9E2E3AB77663");

            FakePaymentRepository.BankAccounts.Add(
                new BankAccount
            {
                Id            = rmbAccountId,
                AccountId     = "HXB1",
                AccountName   = "Beijing",
                AccountNumber = "BA3912940494",
                //AccountType = "Main",
                AccountType  = bankAccountType,
                Bank         = bank,
                Branch       = "Main",
                Province     = "Beijing Municipality",
                CurrencyCode = "RMB",
                Created      = DateTime.Now,
                CreatedBy    = "Initializer",
                Status       = BankAccountStatus.Active,
                Updated      = DateTime.Now,
                UpdatedBy    = "Initializer"
            }
                );

            var paymentLevel = new PaymentLevel
            {
                Id                   = new Guid("E1E600D4-0729-4D5C-B93E-085A94B55B33"),
                BrandId              = brandId,
                CurrencyCode         = "CAD",
                Name                 = "CADLevel",
                Code                 = "CADLevel",
                EnableOfflineDeposit = true,
                DateCreated          = DateTimeOffset.Now,
                CreatedBy            = "Initializer"
            };

            paymentLevel.BankAccounts.Add(FakePaymentRepository.BankAccounts.Single(a => a.Id == cadAccountId));
            FakePaymentRepository.PaymentLevels.Add(paymentLevel);

            paymentLevel = new PaymentLevel
            {
                Id                   = new Guid("1ED97A2B-EBA2-4B68-A70C-18A7070908F9"),
                BrandId              = brandId,
                CurrencyCode         = "RMB",
                Name                 = "RMBLevel",
                Code                 = "RMBLevel",
                EnableOfflineDeposit = true,
                DateCreated          = DateTimeOffset.Now,
                CreatedBy            = "Initializer"
            };
            paymentLevel.BankAccounts.Add(FakePaymentRepository.BankAccounts.Single(a => a.Id == rmbAccountId));
            FakePaymentRepository.PaymentLevels.Add(paymentLevel);

            var licensee = new Licensee
            {
                Id = Guid.NewGuid(),
                AllowedBrandCount = 1,
                Status            = LicenseeStatus.Active
            };

            FakeBrandRepository.Licensees.Add(licensee);
            FakeBrandRepository.SaveChanges();

            foreach (var culture in FakeBrandRepository.Cultures)
            {
                FakeMessagingRepository.Languages.Add(new Language
                {
                    Code = culture.Code,
                    Name = culture.Name
                });
            }

            foreach (var thisBrand in FakeBrandRepository.Brands.Include(x => x.BrandCultures.Select(y => y.Culture)))
            {
                FakeMessagingRepository.Brands.Add(new Core.Messaging.Data.Brand
                {
                    Id        = thisBrand.Id,
                    Name      = thisBrand.Name,
                    SmsNumber = TestDataGenerator.GetRandomPhoneNumber(),
                    Email     = TestDataGenerator.GetRandomEmail(),
                    Languages = thisBrand.BrandCultures.Select(x => new Language
                    {
                        Code = x.Culture.Code,
                        Name = x.Culture.Name
                    }).ToList()
                });
            }

            foreach (var thisPlayer in FakePlayerRepository.Players)
            {
                FakeMessagingRepository.Players.Add(new Core.Messaging.Data.Player
                {
                    Id        = thisPlayer.Id,
                    Username  = thisPlayer.Username,
                    FirstName = thisPlayer.FirstName,
                    LastName  = thisPlayer.LastName,
                    Email     = thisPlayer.Email,
                    Language  = FakeMessagingRepository.Languages.Single(x => x.Code == thisPlayer.CultureCode),
                    Brand     = FakeMessagingRepository.Brands.Single(x => x.Id == thisPlayer.BrandId)
                });
            }

            foreach (var thisBrand in FakeMessagingRepository.Brands.Include(x => x.Languages))
            {
                foreach (var thisLanguage in thisBrand.Languages)
                {
                    foreach (var messageType in (MessageType[])Enum.GetValues(typeof(MessageType)))
                    {
                        FakeMessagingRepository.MessageTemplates.Add(new MessageTemplate
                        {
                            BrandId               = thisBrand.Id,
                            LanguageCode          = thisLanguage.Code,
                            MessageType           = messageType,
                            MessageDeliveryMethod = MessageDeliveryMethod.Email,
                            TemplateName          = TestDataGenerator.GetRandomString(),
                            MessageContent        = string.Format("Fake email message Template. {0}.",
                                                                  Enum.GetName(typeof(MessageType), messageType)),
                            Subject     = TestDataGenerator.GetRandomString(),
                            Status      = Status.Active,
                            CreatedBy   = "System",
                            Created     = DateTimeOffset.UtcNow,
                            ActivatedBy = "System",
                            Activated   = DateTimeOffset.UtcNow
                        });

                        FakeMessagingRepository.MessageTemplates.Add(new MessageTemplate
                        {
                            BrandId               = thisBrand.Id,
                            LanguageCode          = thisLanguage.Code,
                            MessageType           = messageType,
                            MessageDeliveryMethod = MessageDeliveryMethod.Sms,
                            TemplateName          = TestDataGenerator.GetRandomString(),
                            MessageContent        = string.Format("Fake SMS message Template. {0}.",
                                                                  Enum.GetName(typeof(MessageType), messageType)),
                            Status      = Status.Active,
                            CreatedBy   = "System",
                            Created     = DateTimeOffset.UtcNow,
                            ActivatedBy = "System",
                            Activated   = DateTimeOffset.UtcNow
                        });
                    }
                }
            }

            FakeMessagingRepository.SaveChanges();

            var securityHelper = Container.Resolve <SecurityTestHelper>();

            securityHelper.PopulatePermissions();

            var licenseeIds = new[] { licensee.Id };
            var brandIds    = new[] { brand.Id };

            const string superAdminUsername = "******";

            var adminId = RoleIds.SuperAdminId;
            var role    = new Role
            {
                Id          = adminId,
                Code        = "SuperAdmin",
                Name        = "SuperAdmin",
                CreatedDate = DateTime.UtcNow
            };

            role.SetLicensees(licenseeIds);

            var user = new Core.Security.Data.Users.Admin
            {
                Id          = adminId,
                Username    = superAdminUsername,
                FirstName   = superAdminUsername,
                LastName    = superAdminUsername,
                IsActive    = true,
                Description = superAdminUsername,
                Role        = role
            };

            user.SetLicensees(licenseeIds);

            foreach (var licenseeId in licenseeIds)
            {
                user.LicenseeFilterSelections.Add(new LicenseeFilterSelection
                {
                    AdminId    = user.Id,
                    LicenseeId = licenseeId,
                    Admin      = user
                });
            }

            user.SetAllowedBrands(brandIds);

            foreach (var item in brandIds)
            {
                user.BrandFilterSelections.Add(new BrandFilterSelection
                {
                    AdminId = user.Id,
                    BrandId = item,
                    Admin   = user
                });
            }

            FakeSecurityRepository.Admins.AddOrUpdate(user);
            var authCommands = Container.Resolve <IAuthCommands>();

            authCommands.CreateRole(new CreateRole
            {
                RoleId      = adminId,
                Permissions = Container.Resolve <IAuthQueries>().GetPermissions().Select(p => p.Id).ToList()
            });
            authCommands.CreateActor(new CreateActor
            {
                ActorId  = adminId,
                Username = superAdminUsername,
                Password = superAdminUsername
            });
            authCommands.AssignRoleToActor(new AssignRole
            {
                ActorId = adminId,
                RoleId  = adminId
            });

            FakeSecurityRepository.SaveChanges();

            securityHelper.SignInAdmin(user);

            var testServerUri = ConfigurationManager.AppSettings["TestServerUri"];

            TestStartup.Container = Container;
            _webServer            = WebApp.Start <TestStartup>(testServerUri);

            PlayerWebservice = new MemberApiProxy(testServerUri);
        }