public async Task GetAllPlayersTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);

            // Act
            var result = await controller.GetPlayer();

            // Assert
            Assert.IsNotNull(result);
            var objResult = result.Result as OkObjectResult;

            Assert.IsNotNull(objResult);
            var retResult = objResult.Value as List <PlayerDTO>;

            Assert.IsNotNull(retResult);
            Assert.AreEqual(TestData.Players().Count, retResult.Count);
            foreach (var player in retResult)
            {
                var testItem = TestData.Players().Find(p => p.Id == player.Id);
                Assert.AreEqual(testItem.FirstName, player.FirstName);
                Assert.AreEqual(testItem.LastName, player.LastName);
            }
        }
        public PlayerServiceTests()
        {
            var provider = ServiceProviderFactory.GetProvider();

            _playerService        = provider.GetRequiredService <IPlayerService>();
            _fakePlayerRepository = provider.GetRequiredService <FakePlayerRepository>();
        }
示例#3
0
        public async Task Create_NoArguments_ReturnsViewResult()
        {
            var teamRepository   = new FakeTeamRepository();
            var playerRepository = new FakePlayerRepository();
            var controller       = new PlayersController(playerRepository, teamRepository);

            var result = await controller.Create();

            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
示例#4
0
        public async Task Delete_UserNotInDb_ReturnsNotFoundView()
        {
            var teamRepository   = new FakeTeamRepository();
            var playerRepository = new FakePlayerRepository();
            var controller       = new PlayersController(playerRepository, teamRepository);

            var result = await controller.Delete(1) as ViewResult;

            Assert.AreEqual("NotFound", result.ViewName);
        }
示例#5
0
        public async Task Create_ValidUser_ReturnsRedirectToActionResult()
        {
            var player           = new Player();
            var teamRepository   = new FakeTeamRepository();
            var playerRepository = new FakePlayerRepository();
            var controller       = new PlayersController(playerRepository, teamRepository);

            var result = await controller.Create(player);

            Assert.IsInstanceOfType(result, typeof(RedirectToActionResult));
        }
示例#6
0
        public async Task Create_InValidUser_ReturnsSameModel()
        {
            var expected         = new Player();
            var teamRepository   = new FakeTeamRepository();
            var playerRepository = new FakePlayerRepository();
            var controller       = new PlayersController(playerRepository, teamRepository);

            controller.ModelState.AddModelError("", "cos");

            var result = await controller.Create(expected) as ViewResult;

            Assert.AreEqual(expected, result.Model);
        }
        public async Task DeletePlayerTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var playerId   = 1;

            // Act
            var result = await controller.DeletePlayer(playerId);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(playerId, result.Value.Id);
        }
        public async Task GetPlayerNotFoundTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var playerId   = 100;

            // Act
            var result = await controller.GetPlayer(playerId);

            // Assert
            Assert.IsNotNull(result);
            var objResult = result.Result as NotFoundResult;

            Assert.IsNotNull(objResult);
        }
示例#9
0
        public async Task Delete_UserInDb_ReturnsSameModel()
        {
            var player = new Player()
            {
                PlayerId = 1
            };
            var teamRepository   = new FakeTeamRepository();
            var playerRepository = new FakePlayerRepository();
            var controller       = new PlayersController(playerRepository, teamRepository);

            playerRepository.AddPlayer(player);

            var result = await controller.Delete(1) as ViewResult;

            Assert.AreEqual(player, result.Model);
        }
        public async Task PostPlayerInvalidNameTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var player     = new PlayerDTO
            {
                LastName = "", DateJoined = DateTime.Now
            };

            // Act
            var result = await controller.PostPlayer(player);

            // Assert
            Assert.IsNotNull(result);
            var objResult = result.Result as BadRequestObjectResult;

            Assert.IsNotNull(objResult);
        }
        public async Task PutPlayerTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, NullLogger <PlayersController> .Instance);
            var playerId   = 1;
            var player     = new PlayerDTO
            {
                Id         = playerId,
                DateJoined = DateTime.Now,
                FirstName  = "FIRSTNAME",
                LastName   = "LASTNAME"
            };

            // Act
            var result = await controller.PutPlayer(playerId, player);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NoContentResult));
        }
        public async Task GetPlayerTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var playerId   = 1;

            // Act
            var result = await controller.GetPlayer(playerId);

            // Assert
            Assert.IsNotNull(result);
            var testItem  = TestData.Players().Find(c => c.Id == playerId);
            var objResult = result.Result as OkObjectResult;

            Assert.IsNotNull(objResult);
            var retResult = objResult.Value as PlayerDTO;

            Assert.AreEqual(testItem.Id, retResult.Id);
            Assert.AreEqual(testItem.FirstName, retResult.FirstName);
            Assert.AreEqual(testItem.LastName, retResult.LastName);
        }
        public async Task PutPlayerNotFoundTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var playerId   = 100;
            var player     = new PlayerDTO
            {
                Id         = playerId,
                DateJoined = DateTime.Now,
                FirstName  = "FIRSTNAME",
                LastName   = "LASTNAME"
            };

            // Act
            var result = await controller.PutPlayer(playerId, player);

            // Assert
            Assert.IsNotNull(result);
            var objResult = result as NotFoundResult;

            Assert.IsNotNull(objResult);
        }
        public async Task PutPlayerNoMatchIdTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, NullLogger <PlayersController> .Instance);
            var playerId   = 1;
            var player     = new PlayerDTO
            {
                Id         = playerId + 1,
                DateJoined = DateTime.Now,
                FirstName  = "FIRSTNAME",
                LastName   = "LASTNAME"
            };

            // Act
            var result = await controller.PutPlayer(playerId, player);

            // Assert
            Assert.IsNotNull(result);
            var objResult = result as BadRequestResult;

            Assert.IsNotNull(objResult);
        }
        public async Task PostPlayerNoIdTest()
        {
            // Arrange
            var repo       = new FakePlayerRepository(TestData.Players());
            var controller = new PlayersController(repo, null);
            var player     = new PlayerDTO
            {
                LastName = "Doe", FirstName = "Jane", DateJoined = DateTime.Now
            };

            // Act
            var result = await controller.PostPlayer(player);

            // Assert
            Assert.IsNotNull(result);
            var objResult = result.Result as CreatedAtActionResult;

            Assert.IsNotNull(objResult);
            var retResult = objResult.Value as PlayerDTO;

            Assert.IsNotNull(retResult);
            Assert.AreEqual(player, retResult);
        }
示例#16
0
        public override void BeforeEach()
        {
            base.BeforeEach();
            _reportRepository  = Container.Resolve <IReportRepository>();
            _paymentRepository = Container.Resolve <IPaymentRepository>();
            _playerRepository  = (FakePlayerRepository)Container.Resolve <IPlayerRepository>();

/*            _playerRepository.SavedChanges += (sender, args) =>
 *          {
 *              _playerRepository.Players.ForEach(o =>
 *              {
 *                  if (_paymentRepository.Players.Select(x => x.Id).Contains(o.Id))
 *                      return;
 *
 *                  var player = AutoMapper.Mapper.DynamicMap<Core.Payment.Data.Player>(o);
 *                  _paymentRepository.Players.Add(player);
 *              });
 *          };*/

            _reportQueries  = Container.Resolve <ReportQueries>();
            _playerCommands = Container.Resolve <PlayerCommands>();

            PlayerTestHelper = Container.Resolve <PlayerTestHelper>();
        }
示例#17
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);
        }
 public PlayerControllerTests()
 {
     _fakePlayerRepository = _factory.Services.GetRequiredService <FakePlayerRepository>();
 }