예제 #1
0
        public void CreatePlayerShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreatePlayer_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = "*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = "******",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var playersService = new PlayersService(dbContext, null, null, null);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            playersService.CreatePlayer(user, player);

            Assert.NotNull(user.Player);
        }
예제 #2
0
        public void PlayerHasATeamShouldReturnTrue()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "PlayerHasATeamTrue_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = "*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = "******",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var playersService = new PlayersService(dbContext, null, null, null);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            playersService.CreatePlayer(user, player);

            var playerUser = dbContext.Players.FirstOrDefault(p => p.FullName == "Footeo Player");

            playerUser.Team = new Team
            {
                Name     = "Team",
                Initials = "TTT"
            };
            dbContext.SaveChanges();

            var playerHasATeam = playersService.PlayerHasATeam(user.UserName);

            Assert.True(playerHasATeam);
        }
예제 #3
0
        public void SetPositionShouldReturnCorrectResult()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "SetPosition_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = "*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = "******",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var playersService = new PlayersService(dbContext, null, null, null);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            playersService.CreatePlayer(user, player);

            playersService.SetPosition(user.UserName, PlayerPosition.Forward);

            var position         = player.Position.ToString();
            var expectedPosition = "Forward";

            Assert.AreEqual(expectedPosition, position);
        }
예제 #4
0
        public void IsSquadNumberTakenShouldReturnTrue()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "IsSquadNumberTakenTrue_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = "*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = "******",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var mockUserStore = new Mock <IUserStore <FooteoUser> >();
            var userManager   = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null);

            userManager.Setup(u => u.RemoveFromRoleAsync(user, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(user, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));

            var leaguesService = new LeaguesService(dbContext, townsService);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            var playerUser = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = "*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = "******",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(playerUser);
            dbContext.SaveChanges();

            var playerTwo = new Player
            {
                FullName = "Footeo Player"
            };

            userManager.Setup(u => u.RemoveFromRoleAsync(playerUser, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(playerUser, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(playerUser, "Captain")).Returns(Task.FromResult(IdentityResult.Success));

            var teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);

            var playersService = new PlayersService(dbContext, userManager.Object, null, teamsService);

            playersService.CreatePlayer(user, player);
            playersService.CreatePlayer(playerUser, playerTwo);

            teamsService.CreateTeam("Team", "TTT", playerUser.UserName);
            var team = dbContext.Teams.FirstOrDefault(t => t.Name == "Team");

            playersService.JoinTeam(team.Id, user.UserName);

            playersService.SetSquadNumber(user.UserName, 7);

            var isSquadNumberTaken = playersService.IsSquadNumberTaken(7, team.Id);

            Assert.True(isSquadNumberTaken);
        }