Exemplo n.º 1
0
        public void GetMatchesTest_Check_Score()
        {
            //arrange
            var matches = new List <Matches>
            {
                new Matches
                {
                    Id           = 4,
                    Location     = "Jeziorany",
                    Address      = "ul. Marii Konopnickiej",
                    Year         = 2018,
                    MatchesScore = new List <MatchesScore>
                    {
                        new MatchesScore {
                            TeamId = 1, HalfTimeScore = 2, FullTimeScore = 6
                        },
                        new MatchesScore {
                            TeamId = 2, HalfTimeScore = 1, FullTimeScore = 2
                        }
                    }
                },
                new Matches
                {
                    Id           = 5,
                    Location     = "Olsztyn",
                    Address      = "ul. Jagielończyka",
                    Year         = 2012,
                    MatchesScore = new List <MatchesScore>
                    {
                        new MatchesScore {
                            TeamId = 1, HalfTimeScore = 3, FullTimeScore = 2
                        },
                        new MatchesScore {
                            TeamId = 2, HalfTimeScore = 2, FullTimeScore = 4
                        }
                    }
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Matches> >();

            mockSet.As <IQueryable <Matches> >().Setup(m => m.Provider).Returns(matches.Provider);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.Expression).Returns(matches.Expression);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.ElementType).Returns(matches.ElementType);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.GetEnumerator()).Returns(matches.GetEnumerator());
            var mockContext = new Mock <MulderContext>();

            mockContext.Setup(c => c.Matches).Returns(mockSet.Object);

            ///act
            var service = new MatchesService(mockContext.Object);
            var result  = service.GetMatches();

            //assert
            Assert.IsTrue(result.Count == 2);
            Assert.IsTrue(result[0].ScoreInfo[0].FullTimeScore == 6);
            Assert.IsTrue(result[0].ScoreInfo[1].FullTimeScore == 2);
            Assert.IsTrue(result[1].ScoreInfo[0].FullTimeScore == 2);
            Assert.IsTrue(result[1].ScoreInfo[1].FullTimeScore == 4);
        }
Exemplo n.º 2
0
        public async Task Ok_Success()
        {
            var service = new MatchesService(_repository.Object, null, _mapper);
            await service.BulkAddMatches(MockedMatches().ToList());

            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Once);
        }
Exemplo n.º 3
0
        public async Task Ok_Success()
        {
            var service = new MatchesService(_repository.Object, null, _mapper);
            await service.AddMatch(MockedMatch());

            _repository.Verify(x => x.AddAsync(It.IsAny <DataRepository.DataEntities.Match>()), Times.Once);
        }
Exemplo n.º 4
0
        async Task ExecuteLoadMatchesCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Matches.Clear();
                var matches = await MatchesService.GetMatches();

                foreach (var match in matches)
                {
                    Matches.Add(match);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 5
0
        public void RepositoryError_ThrowException()
        {
            _repository.Setup(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >())).ThrowsAsync(new DataException());

            var service = new MatchesService(_repository.Object, null, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.BulkAddMatches(MockedMatches().ToList()));

            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Once);
        }
Exemplo n.º 6
0
        public void RepositoryError_ThrowException()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ThrowsAsync(new DataException());

            var service = new MatchesService(_repository.Object, null, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.GetSeasonRoundMatchesAsync(Year, Season, Round));

            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
        }
Exemplo n.º 7
0
        public void GetMatchesError_ThrowException()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ThrowsAsync(new DataException());

            var service = new MatchesService(_repository.Object, null, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.DeleteAllMatchesFromSeasonRoundAsync(Year, Season, Round));

            _repository.Verify(x => x.DeleteMatchesAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Never);
        }
Exemplo n.º 8
0
        public void RepositoryGetError_ThrowException()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ThrowsAsync(new DataException());

            var service = new MatchesService(_repository.Object, null, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.SetRoundResults(Year, Season, Round, MockedResults().ToList()));

            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Never);
            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
        }
Exemplo n.º 9
0
        public async Task Ok_Success()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()))
            .ReturnsAsync(MockedMatches().ToList());

            var service = new MatchesService(_repository.Object, null, _mapper);
            await service.SetRoundResults(Year, Season, Round, MockedResults().ToList());

            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Once);
            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
        }
Exemplo n.º 10
0
        public async Task Ok_Success()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ReturnsAsync(MockedMatches().ToList());
            var service = new MatchesService(_repository.Object, null, _mapper);
            var result  = await service.GetSeasonRoundMatchesAsync(Year, Season, Round);

            Assert.NotNull(result);
            Assert.IsInstanceOf <IEnumerable <BusinessEntities.Match> >(result);

            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
        }
Exemplo n.º 11
0
        public async Task Ok_Success()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ReturnsAsync(MockedMatches().ToList());

            var service = new MatchesService(_repository.Object, _configService.Object, _mapper);
            await service.ResetAllMatchesFromSeasonAsync(Year, Season);


            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Exactly(10));
            _configService.Verify(x => x.GetConfig(It.IsAny <short>(), It.IsAny <byte>()), Times.Once);
            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Exactly(10));
        }
Exemplo n.º 12
0
        public void GetMatchesError_ThrowException()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>())).ThrowsAsync(new DataException());

            var service = new MatchesService(_repository.Object, _configService.Object, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.ResetAllMatchesFromSeasonAsync(Year, Season));

            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
            _configService.Verify(x => x.GetConfig(It.IsAny <short>(), It.IsAny <byte>()), Times.Once);
            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Never);
        }
Exemplo n.º 13
0
        public ActionResult Index()
        {
            var matches = MatchesService.GetMatchesInTwentyFourHours();

            var viewModelMatches = new HashSet <Match>();

            foreach (var match in matches)
            {
                var bets = new HashSet <Bet>();

                foreach (var bet in match.Bets)
                {
                    var newBet = new Bet()
                    {
                        Name   = bet.Name,
                        IsLive = bet.IsLive
                    };

                    var odds = new HashSet <Odd>();

                    foreach (var odd in bet.Odds)
                    {
                        odds.Add(new Odd()
                        {
                            Name            = odd.Name,
                            Value           = odd.Value,
                            SpecialBetValue = odd.SpecialBetValue
                        });
                    }

                    newBet.Odds = odds;

                    bets.Add(newBet);
                }

                viewModelMatches.Add(new Match()
                {
                    SportName = match.Event.Sport.Name,
                    EventName = match.Event.Name,
                    Name      = match.Name,
                    MatchType = match.MatchType,
                    StartDate = match.StartDate,
                    Bets      = bets
                });
            }

            return(this.View(viewModelMatches));
        }
Exemplo n.º 14
0
        public void RepositoryMissingMatch_ThrowException()
        {
            _repository.Setup(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()))
            .ReturnsAsync(MockedMatches().ToList());

            var wrongMatch = MockedResults().ToList();

            wrongMatch[2].HomeTeamId = 99;

            var service = new MatchesService(_repository.Object, null, _mapper);

            Assert.ThrowsAsync <DataException>(async() => await service.SetRoundResults(Year, Season, Round, wrongMatch));

            _repository.Verify(x => x.BatchUpsertAsync(It.IsAny <IEnumerable <DataRepository.DataEntities.Match> >()), Times.Never);
            _repository.Verify(x => x.GetMatchesAsync(It.IsAny <short>(), It.IsAny <byte>(), It.IsAny <byte>()), Times.Once);
        }
Exemplo n.º 15
0
        public void GetMatchTest_Check_Player_Name()
        {
            //arrange
            var matches = new List <Matches>
            {
                new Matches
                {
                    Id           = 5,
                    MatchesScore = new List <MatchesScore>
                    {
                        new MatchesScore {
                            TeamId = 1, HalfTimeScore = 3, FullTimeScore = 2
                        },
                        new MatchesScore {
                            TeamId = 2, HalfTimeScore = 2, FullTimeScore = 4
                        }
                    },
                    MatchesLineUp = new List <MatchesLineUp>
                    {
                        new MatchesLineUp {
                            Player = new Players {
                                NickName = "Sopel"
                            },
                            PlayersScore = new List <PlayersScore>()
                        }
                    },
                    MatchesSpectators = new List <MatchesSpectators>(),
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Matches> >();

            mockSet.As <IQueryable <Matches> >().Setup(m => m.Provider).Returns(matches.Provider);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.Expression).Returns(matches.Expression);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.ElementType).Returns(matches.ElementType);
            mockSet.As <IQueryable <Matches> >().Setup(m => m.GetEnumerator()).Returns(matches.GetEnumerator());
            var mockContext = new Mock <MulderContext>();

            mockContext.Setup(c => c.Matches).Returns(mockSet.Object);

            ///act
            var service = new MatchesService(mockContext.Object);
            var result  = service.GetMatch(5);

            //assert
            Assert.IsTrue(result.Players[0].PlayerNick == "Sopel");
        }
Exemplo n.º 16
0
 public MatchesServiceTests()
 {
     _sut = new MatchesService(_mapperMock.Object, _unitOfWorkMock.Object);
 }
Exemplo n.º 17
0
        public void SimulateMethodWorkCorrectly()
        {
            var matchList = new List <Match>
            {
                new Match
                {
                    Id         = 1,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 2,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 3,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 2,
                    LeagueId   = 1,
                },
            };

            var teamsList = new List <Team>()
            {
                new Team
                {
                    Id   = 1,
                    Name = "Real Madrid",
                },
                new Team
                {
                    Id   = 2,
                    Name = "Barcelona",
                },
            };

            var matchRepo = new Mock <IDeletableEntityRepository <Match> >();

            matchRepo.Setup(r => r.All()).Returns(matchList.AsQueryable());

            var leagueRepo = new Mock <IDeletableEntityRepository <League> >();

            var userRepo = new Mock <IDeletableEntityRepository <ApplicationUser> >();

            var teamRepo = new Mock <IDeletableEntityRepository <Team> >();

            teamRepo.Setup(x => x.All()).Returns(teamsList.AsQueryable());

            var playerRepo     = new Mock <IDeletableEntityRepository <Player> >();
            var predictionRepo = new Mock <IDeletableEntityRepository <Prediction> >();

            var service = new MatchesService(matchRepo.Object, teamRepo.Object, leagueRepo.Object, playerRepo.Object, predictionRepo.Object);
        }
Exemplo n.º 18
0
        public void GetAllMethodReturnCorrectDataSetProperties()
        {
            var list = new List <Match>
            {
                new Match
                {
                    Id         = 1,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 2,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 3,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 2,
                    LeagueId   = 1,
                },
            }.AsQueryable <Match>();

            var leagues = new List <League>()
            {
                new League
                {
                    Id      = 1,
                    Name    = "English",
                    Country = "England",
                    Matches = list.ToList(),
                },
            }.AsQueryable <League>();

            var teamsList = new List <Team>()
            {
                new Team
                {
                    Id   = 1,
                    Name = "Real Madrid",
                },
                new Team
                {
                    Id   = 2,
                    Name = "Barcelona",
                },
            };

            var matchRepo = new Mock <IDeletableEntityRepository <Match> >();

            matchRepo.Setup(r => r.All()).Returns(list);

            var leagueRepo = new Mock <IDeletableEntityRepository <League> >();

            leagueRepo.Setup(r => r.All()).Returns(leagues);

            var userRepo = new Mock <IDeletableEntityRepository <ApplicationUser> >();

            var teamRepo = new Mock <IDeletableEntityRepository <Team> >();

            teamRepo.Setup(x => x.All()).Returns(teamsList.AsQueryable());

            var playerRepo     = new Mock <IDeletableEntityRepository <Player> >();
            var predictionRepo = new Mock <IDeletableEntityRepository <Prediction> >();

            var service = new MatchesService(matchRepo.Object, teamRepo.Object, leagueRepo.Object, playerRepo.Object, predictionRepo.Object);

            var leaguesList = service.GetAll(1);
            var matches     = leaguesList.Select(m => m.Matches).FirstOrDefault();
            var league      = leaguesList.FirstOrDefault();

            var leagueId   = league.LeagueId;
            var leagueName = league.LeagueName;

            var matchId    = league.Matches.Select(x => x.Id).FirstOrDefault();
            var homeGoals  = league.Matches.Select(x => x.HomeGoals).FirstOrDefault();
            var awayGoals  = league.Matches.Select(x => x.AwayGoals).FirstOrDefault();
            var gameWeekId = league.Matches.Select(x => x.GameweekId).FirstOrDefault();
            var homeName   = league.Matches.Select(x => x.HomeName).FirstOrDefault();
            var awayName   = league.Matches.Select(x => x.AwayName).FirstOrDefault();


            Assert.Equal(leaguesList.Count(), leagues.Count());
            Assert.Equal(matches.Count(), list.Where(m => m.GameweekId == 1).Count());
            Assert.Equal(1, leagueId);
            Assert.Equal("English", leagueName);
            leagueRepo.Verify(x => x.All(), Times.Once);

            Assert.Equal(1, matchId);
            Assert.Equal(3, homeGoals);
            Assert.Equal(1, awayGoals);
            Assert.Equal(1, gameWeekId);
            Assert.Equal("Real Madrid", homeName);
            Assert.Equal("Barcelona", awayName);
        }
Exemplo n.º 19
0
        public void GetAllMethodByUserReturnIsMatchPredicted()
        {
            var list = new List <Match>
            {
                new Match
                {
                    Id         = 1,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 2,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 1,
                    LeagueId   = 1,
                },
                new Match
                {
                    Id         = 3,
                    HomeTeamId = 1,
                    AwayTeamId = 2,
                    HomeGoals  = 3,
                    AwayGoals  = 1,
                    ResultType = FootballPredictor.Data.Models.Enums.BetType.Home,
                    GameweekId = 2,
                    LeagueId   = 1,
                },
            }.AsQueryable <Match>();

            var leagues = new List <League>()
            {
                new League
                {
                    Id      = 1,
                    Name    = "English",
                    Country = "England",
                    Matches = list.ToList(),
                },
            }.AsQueryable <League>();

            var user = new ApplicationUser
            {
                Id       = "abc",
                UserName = "******",
            };

            var predictions = new List <Prediction>()
            {
                new Prediction
                {
                    Id            = 1,
                    HomeTeamGoals = 2,
                    AwayTeamGoals = 1,
                    Bet           = FootballPredictor.Data.Models.Enums.BetType.Home,
                    MatchId       = 1,
                    UserId        = user.Id,
                    Description   = "dadadadadadadadadadadadada",
                    GameweekId    = 1,
                },

                new Prediction
                {
                    Id            = 2,
                    HomeTeamGoals = 2,
                    AwayTeamGoals = 1,
                    Bet           = FootballPredictor.Data.Models.Enums.BetType.Home,
                    MatchId       = 1,
                    UserId        = "cfe",
                    Description   = "dadadadadadadadadadadadada",
                    GameweekId    = 1,
                },
            };

            user.Predictions.Add(predictions[0]);

            var matchRepo = new Mock <IDeletableEntityRepository <Match> >();

            matchRepo.Setup(r => r.All()).Returns(list);

            var leagueRepo = new Mock <IDeletableEntityRepository <League> >();

            leagueRepo.Setup(r => r.All()).Returns(leagues);
            var userRepo       = new Mock <IDeletableEntityRepository <ApplicationUser> >();
            var teamRepo       = new Mock <IDeletableEntityRepository <Team> >();
            var playerRepo     = new Mock <IDeletableEntityRepository <Player> >();
            var predictionRepo = new Mock <IDeletableEntityRepository <Prediction> >();

            predictionRepo.Setup(r => r.All()).Returns(predictions.AsQueryable());

            var service = new MatchesService(matchRepo.Object, teamRepo.Object, leagueRepo.Object, playerRepo.Object, predictionRepo.Object);

            var leaguesModels = service.GetAll(user.Id, 1);

            var match = leaguesModels.Select(x => x.Matches).FirstOrDefault().FirstOrDefault();

            var pred = predictions[0];

            Assert.Equal(leaguesModels.Count(), leagues.Count());
            Assert.Equal(user.Id, pred.UserId);
            Assert.Equal(false, match.PredictionCreated);
            predictionRepo.Verify(x => x.All(), Times.Once);
        }
        public void RefereeAttendToMatchShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "AttendToMatch_Referees_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);

            var town = townsService.CreateTown("Burgas");

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

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

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

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

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

            dbContext.Users.Add(userAT);
            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(userHT, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userHT, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userHT, "Captain")).Returns(Task.FromResult(IdentityResult.Success));

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

            var fieldsService      = new FieldsService(dbContext, townsService);
            var leaguesService     = new LeaguesService(dbContext, townsService);
            var teamsService       = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);
            var teamLeaguesService = new TeamLeaguesService(dbContext, teamsService, leaguesService);
            var fixturesService    = new FixturesService(dbContext, leaguesService);
            var matchesService     = new MatchesService(dbContext, fixturesService, teamsService);
            var refereesService    = new RefereesService(dbContext, matchesService, teamLeaguesService);

            var referee = new Referee
            {
                FullName = $"Footeo Referee"
            };

            refereesService.CreateReferee(user, referee);

            townsService.CreateTown("Sofia");
            leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(3), "Sofia");

            teamsService.CreateTeam("Home Team", "HT", userHT.UserName);
            teamsService.CreateTeam("Away Team", "AT", userAT.UserName);

            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League");

            teamLeaguesService.JoinLeague(userHT.UserName, league.Id);
            teamLeaguesService.JoinLeague(userAT.UserName, league.Id);

            fixturesService.CreateFixture("Matchday", DateTime.UtcNow.AddDays(7), league.Id);
            var fixture = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday");

            fieldsService.CreateField("Field", "Address", true, "Sofia");
            var field = dbContext.Fields.FirstOrDefault(n => n.Name == "Field");

            matchesService.CreateMatch(userHT.Player.Team.Id, userAT.Player.Team.Id, field.Id, fixture.Id);
            var match = dbContext.Matches.FirstOrDefault();

            refereesService.AttendAMatch(user.UserName, match.Id);

            Assert.NotNull(match.Referee);
        }
 public MatchController(MatchesService MatchService, TicketsService ticketsService)
 {
     _matchService   = MatchService;
     _ticketsService = ticketsService;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="matchesService"></param>
 public MatchesController(MatchesService <MatchesViewModel, Match> matchesService)
 {
     _matchesService = matchesService;
 }