public void AllFixturesByLeagueIdShouldReturnCorrectCount() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "AllFixturesByLeague_Fixtures_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var fixturesService = new FixturesService(dbContext, leaguesService); leaguesService.CreateLeague("League2", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Varna"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League2"); for (int i = 1; i <= 20; i++) { fixturesService.CreateFixture($"Matchday {i}", DateTime.UtcNow.AddDays(i + 7), league.Id); } var fixtures = fixturesService.AllFixtures <FixtureViewModel>(league.Id).ToList(); var expectedFixtures = 20; Assert.AreEqual(expectedFixtures, fixtures.Count); }
public void SetLeagueStatusToCompletedAndReturnAllCompletedLeagues() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "CompletedLeagues_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); for (int i = 1; i <= 5; i++) { leaguesService.CreateLeague($"League{i}", $"Description{i}", DateTime.UtcNow.AddDays(i), DateTime.UtcNow.AddDays(i * i), "Sofia"); } var leagues = dbContext.Leagues.ToList(); foreach (var league in leagues) { leaguesService.SetLeagueStatusToCompleted(league.Id); } var completedLeagues = leaguesService.AllCompletedLeagues <CompletedLeagueViewModel>().ToList(); var completedLeaguesCount = completedLeagues.Count; var expectedCompletedLeaguesCount = 5; Assert.AreEqual(expectedCompletedLeaguesCount, completedLeaguesCount); }
public void IsTeamInLeagueShouldReturnTrue() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "IsTeamInLeagueTrue_Teams_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var mockUserStore = new Mock <IUserStore <FooteoUser> >(); var userManager = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var town = townsService.CreateTown("Stara Zagora"); var user = 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(user); dbContext.SaveChanges(); userManager.Setup(u => u.RemoveFromRoleAsync(user, "Player")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "Captain")).Returns(Task.FromResult(IdentityResult.Success)); var teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null); teamsService.CreateTeam("Team", "TTT", user.UserName); var team = dbContext.Teams.FirstOrDefault(n => n.Name == "Team"); leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Stara Zagora"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League"); var teamLeague = new TeamLeague { Team = team, League = league }; dbContext.TeamsLeagues.Add(teamLeague); dbContext.SaveChanges(); var isTeamInLeague = teamsService.IsTeamInLeague(team.Id); Assert.True(isTeamInLeague); }
public void LeagueExistsByNameShouldReturnTrue() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "LeagueExistsByName_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); leaguesService.CreateLeague("League", "Description", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League"); var leagueExists = leaguesService.LeagueExistsByName(league.Name); Assert.True(leagueExists); }
public void GetLeagueByIdShouldReturnNull() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "GetLeagueByName_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); leaguesService.CreateLeague("League", "Description", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia"); var invalidLeagueId = 2; var league = leaguesService.GetLeagueById <League>(invalidLeagueId); Assert.Null(league); }
public void SetLeagueStatusShouldReturnCompletedStatus() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "SetCompletedStatus_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); leaguesService.CreateLeague($"LeagueC", $"Description", DateTime.UtcNow.AddDays(3), DateTime.UtcNow.AddMonths(3), "Varna"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "LeagueC"); leaguesService.SetLeagueStatusToCompleted(league.Id); var expectedLeagueStatus = "Completed"; Assert.AreEqual(expectedLeagueStatus, league.Status.ToString()); }
public void CreateLeagueShouldReturnCorrectCountOfLeagues() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "CreateLeague_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); for (int i = 1; i <= 5; i++) { leaguesService.CreateLeague($"League{i}", $"Description{i}", DateTime.UtcNow.AddDays(i), DateTime.UtcNow.AddDays(i * i), "Sofia"); } var leaguesCount = dbContext.Leagues.CountAsync().Result; var expectedLeaguesCount = 5; Assert.AreEqual(expectedLeaguesCount, leaguesCount); }
public void CreateFixtureShouldNotReturnNull() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "CreateFixture_Fixtures_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var fixturesService = new FixturesService(dbContext, leaguesService); leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League"); fixturesService.CreateFixture("Matchday 1", DateTime.UtcNow, league.Id); var fixture = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday 1"); Assert.NotNull(fixture); }
public void GetLeagueForFixtureShouldReturnCorrectLeague() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "GetLeagueForFixture_Fixtures_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var fixturesService = new FixturesService(dbContext, leaguesService); leaguesService.CreateLeague("League3", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Plovdiv"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League3"); fixturesService.CreateFixture("Matchday 3", DateTime.UtcNow, league.Id); var fixture = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday 3"); var leagueForFixture = fixturesService.GetLeagueForFixture(fixture.Id); Assert.AreEqual(league, leagueForFixture); }
public void AllPendingLeaguesShouldReturnCorrectCount() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "PendingLeagues_Leagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); for (int i = 1; i <= 3; i++) { leaguesService.CreateLeague($"League{i}", $"Description{i}", DateTime.UtcNow.AddDays(i), DateTime.UtcNow.AddDays(i * i), "Sofia"); } var pendingLeagues = leaguesService.AllPendingLeagues <PendingLeagueViewModel>().ToList(); var pendingLeaguesCount = pendingLeagues.Count; var expectedPendingLeaguesCount = 3; Assert.AreEqual(expectedPendingLeaguesCount, pendingLeaguesCount); }
public void FixtureExistsByIdShouldReturnTrue() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "FixtureExistsByIdTrue_Fixtures_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var fixturesService = new FixturesService(dbContext, leaguesService); leaguesService.CreateLeague("League1", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League1"); fixturesService.CreateFixture("Matchday 2", DateTime.UtcNow, league.Id); var fixtureId = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday 2").Id; var fixtureExists = fixturesService.FixtureExistsById(fixtureId); Assert.True(fixtureExists); }
public void GetFixtureByNameShouldReturnCorrectFixture() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "GetFixtureByName_Fixtures_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var fixturesService = new FixturesService(dbContext, leaguesService); leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League"); fixturesService.CreateFixture("Matchday 1", DateTime.UtcNow, league.Id); var fixtureId = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday 1").Id; var fixture = fixturesService.GetFixtureById <FixtureViewModel>(fixtureId); var expectedFixtureName = "Matchday 1"; Assert.AreEqual(expectedFixtureName, fixture.Name); }
public void GetTeamLeagueWinnerShouldReturnCorrectResult() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "GetTeamLeagueWinner_TeamLeagues_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var leaguesService = new LeaguesService(dbContext, townsService); var mockUserStore = new Mock <IUserStore <FooteoUser> >(); var userManager = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var town = townsService.CreateTown("Sofia"); var user = 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(user); dbContext.SaveChanges(); userManager.Setup(u => u.RemoveFromRoleAsync(user, "Player")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "Captain")).Returns(Task.FromResult(IdentityResult.Success)); var user2 = new FooteoUser { Age = new Random().Next(20, 30), Email = $"*****@*****.**", FirstName = "Footeo", LastName = "Player", UserName = $"footeo", Town = town, PasswordHash = "123123", Player = new Player { FullName = "Footeo User" } }; dbContext.Users.Add(user2); dbContext.SaveChanges(); userManager.Setup(u => u.RemoveFromRoleAsync(user2, "Player")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user2, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user2, "Captain")).Returns(Task.FromResult(IdentityResult.Success)); var teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null); teamsService.CreateTeam("Team", "TTT", user.UserName); teamsService.CreateTeam("Team2", "TTT", user2.UserName); var team = dbContext.Teams.FirstOrDefault(n => n.Name == "Team"); var team2 = dbContext.Teams.FirstOrDefault(n => n.Name == "Team2"); leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow.AddDays(7), DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(l => l.Name == "League"); var teamLeaguesService = new TeamLeaguesService(dbContext, teamsService, leaguesService); teamLeaguesService.JoinLeague(user.UserName, league.Id); teamLeaguesService.JoinLeague(user2.UserName, league.Id); var teamLeague1 = dbContext.TeamsLeagues.FirstOrDefault(t => t.Team == team); var teamLeague2 = dbContext.TeamsLeagues.FirstOrDefault(t => t.Team == team2); teamLeague1.Points = 100; teamLeague2.Points = 50; dbContext.SaveChanges(); league.Status = LeagueStatus.Completed; dbContext.SaveChanges(); var winner = teamLeaguesService.GetTeamLeagueWinner(league.Id); Assert.AreEqual(winner.Team.Name, teamLeague1.Team.Name); }
public void CreateTrophyShouldNotReturnNull() { var options = new DbContextOptionsBuilder <FooteoDbContext>() .UseInMemoryDatabase(databaseName: "CreateTrophy_Trophies_DB") .Options; var dbContext = new FooteoDbContext(options); var townsService = new TownsService(dbContext); var mockUserStore = new Mock <IUserStore <FooteoUser> >(); var userManager = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var town = townsService.CreateTown("Sofia"); var user = 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(user); dbContext.SaveChanges(); userManager.Setup(u => u.RemoveFromRoleAsync(user, "Player")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success)); userManager.Setup(u => u.AddToRoleAsync(user, "Captain")).Returns(Task.FromResult(IdentityResult.Success)); var leaguesService = new LeaguesService(dbContext, townsService); var teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null); var teamLeaguesService = new TeamLeaguesService(dbContext, teamsService, leaguesService); var trophiesService = new TrophiesService(dbContext, teamLeaguesService); teamsService.CreateTeam("TeamWinner", "TWR", user.UserName); var team = dbContext.Teams.FirstOrDefault(t => t.Name == "TeamWinner"); leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow.AddDays(7), DateTime.UtcNow.AddMonths(2), "Sofia"); var league = dbContext.Leagues.FirstOrDefault(l => l.Name == "League"); leaguesService.SetLeagueStatusToCompleted(league.Id); var teamLeague = new TeamLeague { Team = team, League = league }; dbContext.TeamsLeagues.Add(teamLeague); dbContext.SaveChanges(); trophiesService.CreateTrophy(league.Id); var hasTeamTrophy = team.Trophies.Any(); Assert.True(hasTeamTrophy); }
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); }