コード例 #1
0
        public async Task DeleteStadiumCommand_Can_Delete_Stadium()
        {
            using (var dbContext = GetDbContext("DeleteStadiumCommand_Can_Delete_Stadium"))
            {
                var fakeRepo = new StadiumRepository(dbContext);
                await fakeRepo.AddAsync(new Domain.Entities.Stadium
                {
                    Name = "TestStadiumName"
                });
            }

            using (var dbContext = GetDbContext("DeleteStadiumCommand_Can_Delete_Stadium"))
            {
                var fakeRepo   = new StadiumRepository(dbContext);
                var fakeLogger = new Mock <ILogger <DeleteStadiumCommandHandler> >();
                var handler    = new DeleteStadiumCommandHandler(fakeRepo, GetMapper(), fakeLogger.Object);

                var command = new DeleteStadiumCommand
                {
                    Id = 1,
                };

                var result = await handler.Handle(command, default);

                Assert.False(result.Notifications.HasErrors());

                Assert.Equal(command.Id, result.StadiumDeleteModel.Id);
                Assert.Equal(Domain.Enumerations.EnumBag.DataState.Inactive, result.StadiumDeleteModel.DataState);
            }
        }
コード例 #2
0
        public async Task GetStadiumsQuery_Can_Return_Stadiums()
        {
            var dbContext = GetDbContext("GetStadiumsQuery_Can_Return_Stadiums");

            using (dbContext)
            {
                var fakeStadiumRepo = new StadiumRepository(dbContext);
                var fakeTeamRepo    = new TeamRepository(dbContext);
                var fakeLogger      = new Mock <ILogger <GetStadiumsQueryHandler> >();
                var handler         = new GetStadiumsQueryHandler(fakeStadiumRepo, GetMapper(), fakeLogger.Object);

                var TeamsToAdd = new List <Team>
                {
                    new Team
                    {
                        Name      = "TeamOne",
                        Longitude = 1.11,
                        Latitude  = 1.43,
                    },
                    new Team
                    {
                        Name      = "TeamTwo",
                        Longitude = 2.11,
                        Latitude  = 2.43,
                    },
                    new Team
                    {
                        Name      = "TeamThree",
                        Longitude = 3.11,
                        Latitude  = 3.43,
                    },
                };

                foreach (var TeamToAdd in TeamsToAdd)
                {
                    await fakeTeamRepo.AddAsync(TeamToAdd);
                }

                var StadiumToAdd = new Stadium
                {
                    Name   = "StadiumName",
                    TeamId = 2
                };

                await fakeStadiumRepo.AddAsync(StadiumToAdd);

                var result = await handler.Handle(new GetStadiumsQuery(), default);

                Assert.False(result.Notifications.HasErrors());

                Assert.Equal(1, result.Stadiums.Count);
                Assert.Equal(StadiumToAdd.Name, result.Stadiums[0].Name);
                Assert.Equal(StadiumToAdd.TeamId, result.Stadiums[0].Team.Id);
            }
        }
コード例 #3
0
 public UnitOfWork()
 {
     TeamRepo         = new TeamRepository();
     EventRepo        = new EventRepository();
     EventMessageRepo = new EventMessageRepository();
     MatchRepo        = new MatchRepository();
     PlayerRepo       = new PlayerRepository();
     StadiumRepo      = new StadiumRepository();
     StatiscticRepo   = new StatisticRepository();
     LeagueRepo       = new LeagueRepository();
     RefereeRepo      = new RefereeRepository();
 }
コード例 #4
0
        public async Task AddStadiumCommand_Can_Add_Stadium()
        {
            using (var dbContext = GetDbContext("AddStadiumCommand_Can_Add_Stadium"))
            {
                var fakePlayerRepo = new PlayerRepository(dbContext);
                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "FirstPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "SecondPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                var fakeTeamRepo = new TeamRepository(dbContext);

                var players = fakePlayerRepo.GetAll();
                await fakeTeamRepo.AddAsync(new Domain.Entities.Team
                {
                    Name    = "FirstTeam",
                    Players = players.ToList()
                });
            }

            using (var dbContext = GetDbContext("AddStadiumCommand_Can_Add_Stadium"))
            {
                var fakeStadiumRepo = new StadiumRepository(dbContext);
                var fakeTeamRepo    = new TeamRepository(dbContext);
                var fakeLogger      = new Mock <ILogger <AddStadiumCommandHandler> >();
                var handler         = new AddStadiumCommandHandler(fakeStadiumRepo, fakeTeamRepo, GetMapper(), fakeLogger.Object);

                var command = new AddStadiumCommand
                {
                    Name   = "TestStadiumName",
                    TeamId = 1
                };

                var result = await handler.Handle(command, default);

                Assert.False(result.Notifications.HasErrors());

                Assert.Equal(command.Name, result.StadiumLookupModel.Name);
                Assert.Equal(command.TeamId, result.StadiumLookupModel.Team.Id);
            }
        }
コード例 #5
0
        public UnitOfWork()
        {
            Platform     = DBManager.GetPlatform();
            DatabasePath = DBManager.GetDatabasePath();

            TeamRepo         = new TeamRepository(Platform, DatabasePath, ImageManager);
            EventRepo        = new EventRepository(Platform, DatabasePath);
            EventMessageRepo = new EventMessageRepository(Platform, DatabasePath);
            MatchRepo        = new MatchRepository(Platform, DatabasePath);
            PlayerRepo       = new PlayerRepository(Platform, DatabasePath);
            StadiumRepo      = new StadiumRepository(Platform, DatabasePath);
            StatiscticRepo   = new StatisticRepository(Platform, DatabasePath);
            LeagueRepo       = new LeagueRepository(Platform, DatabasePath);
            RefereeRepo      = new RefereeRepository(Platform, DatabasePath);
        }
コード例 #6
0
 public StadiumService()
 {
     stadiumRepository = new StadiumRepository();
 }
コード例 #7
0
        public async Task GetStadiumByIdQuery_Can_Return_Stadium()
        {
            var dbContext = GetDbContext("GetStadiumByIdQuery_Can_Return_Stadium");

            using (dbContext)
            {
                var fakeStadiumRepo = new StadiumRepository(dbContext);
                var fakeTeamRepo    = new TeamRepository(dbContext);
                var fakeLogger      = new Mock <ILogger <GetStadiumByIdQueryHandler> >();
                var handler         = new GetStadiumByIdQueryHandler(fakeStadiumRepo, GetMapper(), fakeLogger.Object);

                var fakePlayerRepo = new PlayerRepository(dbContext);
                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "FirstPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "SecondPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                }); await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "ThirdPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                var TeamsToAdd = new List <Team>
                {
                    new Team
                    {
                        Name      = "TeamOne",
                        Longitude = 1.11,
                        Latitude  = 1.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(1)
                        }
                    },
                    new Team
                    {
                        Name      = "TeamTwo",
                        Longitude = 2.11,
                        Latitude  = 2.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(2)
                        }
                    },
                    new Team
                    {
                        Name      = "TeamThree",
                        Longitude = 3.11,
                        Latitude  = 3.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(3)
                        }
                    },
                };

                foreach (var TeamToAdd in TeamsToAdd)
                {
                    await fakeTeamRepo.AddAsync(TeamToAdd);
                }

                var StadiumsToAdd = new List <Stadium>
                {
                    new Stadium
                    {
                        Name   = "StadiumOne",
                        TeamId = 1
                    },
                    new Stadium
                    {
                        Name   = "StadiumTwo",
                        TeamId = 2
                    },
                    new Stadium
                    {
                        Name   = "StadiumThree",
                        TeamId = 3
                    }
                };

                foreach (var StadiumToAdd in StadiumsToAdd)
                {
                    await fakeStadiumRepo.AddAsync(StadiumToAdd);
                }

                var result = await handler.Handle(new GetStadiumByIdQuery()
                {
                    Id = 2
                }, default);

                Assert.False(result.Notifications.HasErrors());

                var secondStadium = result.StadiumLookupModel;

                Assert.Equal(StadiumsToAdd[1].Name, secondStadium.Name);
                Assert.Equal(StadiumsToAdd[1].Team.Id, secondStadium.Team.Id);
            }
        }
コード例 #8
0
        public async Task UpdateStadiumCommand_Can_Update_Stadium()
        {
            using (var dbContext = GetDbContext("UpdateStadiumCommand_Can_Update_Stadium"))
            {
                var fakeStadiumRepo = new StadiumRepository(dbContext);
                var fakeTeamRepo    = new TeamRepository(dbContext);

                var fakePlayerRepo = new PlayerRepository(dbContext);
                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "FirstPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "SecondPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                }); await fakePlayerRepo.AddAsync(new Domain.Entities.Player
                {
                    Name         = "ThirdPlayer",
                    Surname      = "LastName",
                    Height       = 1.98,
                    EmailAddress = "*****@*****.**"
                });

                var TeamsToAdd = new List <Team>
                {
                    new Team
                    {
                        Name      = "TeamOne",
                        Longitude = 1.11,
                        Latitude  = 1.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(1)
                        }
                    },
                    new Team
                    {
                        Name      = "TeamTwo",
                        Longitude = 2.11,
                        Latitude  = 2.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(2)
                        }
                    },
                    new Team
                    {
                        Name      = "TeamThree",
                        Longitude = 3.11,
                        Latitude  = 3.43,
                        Players   = new List <Player> {
                            await fakePlayerRepo.GetPlayerByIdAsync(3)
                        }
                    },
                };

                foreach (var TeamToAdd in TeamsToAdd)
                {
                    await fakeTeamRepo.AddAsync(TeamToAdd);
                }

                await fakeStadiumRepo.AddAsync(new Domain.Entities.Stadium
                {
                    Name   = "StadiumName",
                    TeamId = 2
                });

                var fakeLogger = new Mock <ILogger <UpdateStadiumCommandHandler> >();
                var handler    = new UpdateStadiumCommandHandler(fakeStadiumRepo, GetMapper(), fakeLogger.Object);

                var command = new UpdateStadiumCommand
                {
                    Id     = 1,
                    Name   = "NewStadiumName",
                    TeamId = 1
                };

                var result = await handler.Handle(command, default);

                Assert.False(result.Notifications.HasErrors());

                Assert.Equal(command.Name, result.StadiumLookupModel.Name);
                Assert.Equal(command.TeamId, result.StadiumLookupModel.Team.Id);
            }
        }