public void GetForfeitedGames_OneHomeForfeitOneAwayForfeit_ReturnsTwo()
        {
            List<Fixture> fixtures = new List<Fixture>();
            Team forfeitingTeam = new Team() { Id = 11 };
            TeamLeague forfeitingTeamLeague =  new TeamLeague() { Id = 1, Team = forfeitingTeam };
            TeamLeague winningTeamLeague =  new TeamLeague() { Id = 2, Team = new Team() { Id = 12 } };
            fixtures.Add(new Fixture()
            {
                IsPlayed = "Y",
                IsCupFixture = false,
                Id = 1,
                HomeTeamLeague = forfeitingTeamLeague,
                AwayTeamLeague = winningTeamLeague,
                IsForfeit = true,
                ForfeitingTeam = forfeitingTeam
            });

            fixtures.Add(new Fixture()
            {
                IsPlayed = "Y",
                IsCupFixture = false,
                Id = 1,
                HomeTeamLeague = winningTeamLeague,
                AwayTeamLeague = forfeitingTeamLeague,
                IsForfeit = true,
                ForfeitingTeam = forfeitingTeam
            });

            Assert.That(forfeitingTeamLeague.GetGamesPlayed(fixtures), Is.EqualTo(2));
        }
        public void CanCreateTeamLeague()
        {
            string teamName = "Velocity";
            string teamNameLong = "Nunthorpe Velocity";
            Season season = new Season(2008, 2009);
            League league = new League(season, "Mens", 1, 1);
            Team team = new Team(teamName, teamNameLong); ;

            TeamLeague teamLeague = new TeamLeague(league, team, teamName, teamNameLong);

            Assert.IsNotNull(teamLeague);
            Assert.That(teamLeague.TeamName, Is.EqualTo(teamName));
            Assert.That(teamLeague.TeamNameLong, Is.EqualTo(teamNameLong));
            Assert.That(teamLeague.Team, Is.EqualTo(team));
            Assert.That(teamLeague.League, Is.EqualTo(league));

            // Assert defaults
            Assert.That(teamLeague.GamesLostAway, Is.EqualTo(0));
            Assert.That(teamLeague.GamesLostHome, Is.EqualTo(0));
            Assert.That(teamLeague.GamesLostTotal, Is.EqualTo(0));
            Assert.That(teamLeague.GamesPct, Is.EqualTo(0));
            Assert.That(teamLeague.GamesPlayed, Is.EqualTo(0));
            Assert.That(teamLeague.GamesWonAway, Is.EqualTo(0));
            Assert.That(teamLeague.GamesWonHome, Is.EqualTo(0));
            Assert.That(teamLeague.GamesWonTotal, Is.EqualTo(0));
            Assert.That(teamLeague.PointsAgainstPerGameAvg, Is.EqualTo(0));
            Assert.That(teamLeague.PointsLeague, Is.EqualTo(0));
            Assert.That(teamLeague.PointsScoredAgainst, Is.EqualTo(0));
            Assert.That(teamLeague.PointsScoredDifference, Is.EqualTo(0));
            Assert.That(teamLeague.PointsScoredFor, Is.EqualTo(0));
            Assert.That(teamLeague.PointsScoredPerGameAvg, Is.EqualTo(0));
            Assert.That(teamLeague.Streak, Is.EqualTo(null));
        }
        public void GetStandingsForLeague_ThreeTeamTieResolvedByFixtureScoreDifference_Team_C_B_A()
        {
            List<TeamLeague> basicLeagueStands = new List<TeamLeague>();
            basicLeagueStands.Add(new TeamLeague() { Id = 1,  PointsLeague = 11, PointsScoredDifference = 50 });
            TeamLeague tiedTeamA = new TeamLeague() { Id = 2,  PointsLeague = 10, PointsScoredDifference = 100 };
            TeamLeague tiedTeamB = new TeamLeague() { Id = 3,  PointsLeague = 10, PointsScoredDifference = 100 };
            TeamLeague tiedTeamC = new TeamLeague() { Id = 4,  PointsLeague = 10, PointsScoredDifference = 100 };
            basicLeagueStands.Add(tiedTeamA);
            basicLeagueStands.Add(tiedTeamB);
            basicLeagueStands.Add(tiedTeamC);

            mockCompetitionRepository.GetBasicStandingsForLeague(1).ReturnsForAnyArgs(basicLeagueStands.AsQueryable());

            List<Fixture> tiedTeamFixtures = new List<Fixture>();

            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamA, AwayTeamLeague = tiedTeamB, HomeTeamScore = 40, AwayTeamScore = 20, IsPlayed = "Y" }); // A win
            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamA, AwayTeamLeague = tiedTeamC, HomeTeamScore = 40, AwayTeamScore = 20, IsPlayed = "Y" }); // A win
            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamB, AwayTeamLeague = tiedTeamA, HomeTeamScore = 41, AwayTeamScore = 20, IsPlayed = "Y" }); // B win
            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamB, AwayTeamLeague = tiedTeamC, HomeTeamScore = 40, AwayTeamScore = 20, IsPlayed = "Y" }); // B win
            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamC, AwayTeamLeague = tiedTeamA, HomeTeamScore = 42, AwayTeamScore = 20, IsPlayed = "Y" }); // C win
            tiedTeamFixtures.Add(new Fixture() { HomeTeamLeague = tiedTeamC, AwayTeamLeague = tiedTeamB, HomeTeamScore = 40, AwayTeamScore = 20, IsPlayed = "Y" }); // C win

            mockCompetitionRepository.GetFixturesForTeamLeagues(null).ReturnsForAnyArgs(tiedTeamFixtures);

            // C, B, A
            var standings = competitionService.GetStandingsForLeague(1);
            Assert.That(standings.Count, Is.EqualTo(4));
            Assert.That(standings[0].Id, Is.EqualTo(1));
            Assert.That(standings[1].Id, Is.EqualTo(tiedTeamC.Id));
            Assert.That(standings[2].Id, Is.EqualTo(tiedTeamB.Id));
            Assert.That(standings[3].Id, Is.EqualTo(tiedTeamA.Id));
        }
Exemplo n.º 4
0
        public bool IsAwayTeam(TeamLeague teamLeague)
        {
            if (teamLeague == null)
            {
                throw new ArgumentException("Parameter teamLeague cannot be null");
            }

            return(this.AwayTeamLeague.Id == teamLeague.Id);
        }
 public TeamLeagueDto(TeamLeague tl)
 {
     this.TeamId       = tl.Team.Id;
     this.TeamName     = tl.TeamName;
     this.GamesPlayed  = tl.GamesPlayed.ToString();
     this.GamesWon     = tl.GamesWonTotal.ToString();
     this.GamesLost    = tl.GamesLostTotal.ToString();
     this.GamesPct     = tl.GamesPct.ToString("0.00");
     this.PointsLeague = tl.PointsLeague.ToString();
 }
        public void GetGamesPlayed_TwoPlayedOneUnplayed_ReturnsTwo()
        {
            var teamLeagueA = new TeamLeague() { Id = 1 };
            var teamLeagueB = new TeamLeague() { Id = 2 };
            var teamLeagueC = new TeamLeague() { Id = 3 };
            var fixtures = new List<Fixture>();
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, true));
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true));
            fixtures.Add(GetFixture(teamLeagueC, teamLeagueB, true));
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true, false));

            Assert.That(teamLeagueA.GetGamesPlayed(fixtures), Is.EqualTo(2));
        }
Exemplo n.º 7
0
        public Fixture(TeamLeague homeTeamLeague, TeamLeague awayTeamLeague, DateTime fixtureDate, User lastUpdatedBy)
            : this()
        {
            // Check for required values
            Check.Require(homeTeamLeague != null, "homeTeamLeague must be provided");
            Check.Require(awayTeamLeague != null, "awayTeamLeague must be provided");
            Check.Require(lastUpdatedBy != null, "lastUpdatedBy must be provided");

            this.HomeTeamLeague = homeTeamLeague;
            this.AwayTeamLeague = awayTeamLeague;
            this.FixtureDate    = fixtureDate;
            this.LastUpdatedBy  = lastUpdatedBy;
        }
Exemplo n.º 8
0
        public Fixture(TeamLeague homeTeamLeague, TeamLeague awayTeamLeague, DateTime fixtureDate, User lastUpdatedBy)
            : this()
        {
            // Check for required values
            Check.Require(homeTeamLeague != null, "homeTeamLeague must be provided");
            Check.Require(awayTeamLeague != null, "awayTeamLeague must be provided");
            Check.Require(lastUpdatedBy != null, "lastUpdatedBy must be provided");

            this.HomeTeamLeague = homeTeamLeague;
            this.AwayTeamLeague = awayTeamLeague;
            this.FixtureDate    = fixtureDate;
            this.LastUpdatedBy  = lastUpdatedBy;
        }
        public static Fixture CreateFixture(int id)
        {
            Season season = CreateSeason();
            EntityIdSetter.SetIdOf(season, 1);
            Team team = new Team("teamName", "teamNameLong");
            League league = new League(season, "league desc", 1, 1);
            EntityIdSetter.SetIdOf(league, 1);
            TeamLeague teamLeague = new TeamLeague(league, team, "teamName", "teamNameLong");

            Fixture fixture = new Fixture(teamLeague, teamLeague, DateTime.Today, CreateUser());
            fixture.IsCupFixture = false;
            EntityIdSetter.SetIdOf(fixture, id);
            return fixture;
        }
        public PlayerFixture(TeamLeague teamLeague, Fixture fixture, Player player, int pointsScored, int fouls)
            : this()
        {
            Check.Require(teamLeague != null, "teamLeague cannot be null");
            Check.Require(fixture != null, "teamLeague cannot be null");
            Check.Require(player != null, "player cannot be null");
            Check.Require(pointsScored >= 0, "pointsScored must be greater than or equal to zero");
            Check.Require(fouls >= 0, "fouls must be greater than or equal to zero");

            this.TeamLeague   = teamLeague;
            this.Fixture      = fixture;
            this.Player       = player;
            this.PointsScored = pointsScored;
            this.Fouls        = fouls;
        }
        public PlayerFixture(TeamLeague teamLeague, Fixture fixture, Player player, int pointsScored, int fouls)
            : this()
        {
            Check.Require(teamLeague != null, "teamLeague cannot be null");
            Check.Require(fixture != null, "teamLeague cannot be null");
            Check.Require(player != null, "player cannot be null");
            Check.Require(pointsScored >= 0, "pointsScored must be greater than or equal to zero");
            Check.Require(fouls >= 0, "fouls must be greater than or equal to zero");

            this.TeamLeague = teamLeague;
            this.Fixture = fixture;
            this.Player = player;
            this.PointsScored = pointsScored;
            this.Fouls = fouls;
        }
        public ActionResult Create(TeamLeagueViewModel model)
        {
            if (ModelState.IsValid)
            {
                Team team = teamService.Get(model.TeamId);
                TeamLeague teamLeague = new TeamLeague(competitionService.GetLeague(model.LeagueId), team, team.TeamName, team.TeamNameLong);

                teamLeagueService.Insert(teamLeague);
                teamLeagueService.Commit();

                SuccessMessage(FormMessages.SaveSuccess);
                return RedirectToAction("Index");
            }

            PopulateStaticData(model);

            return View(model);
        }
        public void GetHomeLosses_HomeForfeitExcludeForfeits_ReturnsZero()
        {
            Team forfeitingTeam = new Team() { Id = 11 };
            TeamLeague teamLeague = new TeamLeague() { Id = 1, Team = forfeitingTeam };
            List<Fixture> fixtures = new List<Fixture>();

            fixtures.Add(new Fixture()
            {
                IsPlayed = "Y",
                IsCupFixture = false,
                Id = 1,
                HomeTeamLeague = new TeamLeague() { Id = 2, Team = new Team() { Id = 12 }},
                AwayTeamLeague = teamLeague,
                IsForfeit = true,
                ForfeitingTeam = forfeitingTeam
            });

            Assert.That(teamLeague.GetHomeLosses(fixtures, false), Is.EqualTo(0));
        }
        public TeamLeague ResetStats(TeamLeague tl)
        {
            tl.PointsLeague            = 0;
            tl.GamesPlayed             = 0;
            tl.GamesPct                = 0;
            tl.GamesWonTotal           = 0;
            tl.GamesWonHome            = 0;
            tl.GamesWonAway            = 0;
            tl.GamesLostTotal          = 0;
            tl.GamesLostHome           = 0;
            tl.GamesLostAway           = 0;
            tl.PointsScoredFor         = 0;
            tl.PointsScoredAgainst     = 0;
            tl.PointsScoredDifference  = 0;
            tl.Streak                  = null;
            tl.PointsAgainstPerGameAvg = 0;
            tl.PointsScoredPerGameAvg  = 0;
            tl.GamesForfeited          = 0;

            return tl;
        }
 public void MapToModel(TeamLeague teamLeague)
 {
     TeamLeagueId = teamLeague.Id;
     LeagueId = teamLeague.League.Id;
     TeamId = teamLeague.Team.Id;
 }
        public Fixture MapToFixture(Fixture fixture, TeamLeague homeTeamLeague, TeamLeague awayTeamLeague, Referee referee1, Referee referee2, User lastUpdatedBy, OneOffVenue oneOffVenue)
        {
            fixture.HomeTeamLeague = homeTeamLeague;
            fixture.AwayTeamLeague = awayTeamLeague;
            fixture.LastUpdatedBy  = lastUpdatedBy;
            fixture.LastUpdated    = DateTime.Now;

            // If you remove the few lines below accessing the referee objects you cannot reliably
            // set the properties to null. The assignment seems to be ignored.
            // By best guess is that the properties aren't lazy loaded until accessed so if you assign
            // a value to the property then read from it, the value gets loaded from the database. F****d up.
            fixture.Referee1.Touch();
            fixture.Referee2.Touch();

            fixture.Referee1 = referee1;
            fixture.Referee2 = referee2;

            fixture.OneOffVenue.Touch();
            fixture.OneOffVenue = oneOffVenue;

            return fixture;
        }
 public void Teardown()
 {
     season         = null;
     homeTeam       = null;
     homeTeam       = null;
     league         = null;
     teamLeagueHome = null;
     teamLeagueAway = null;
     fixture        = null;
 }
 public void Setup()
 {
     user           = new User();
     season         = new Season(2008, 2009);
     homeTeam       = new Team("home", "homeTeam");
     awayTeam       = new Team("away", "awayTeam");
     league         = new League(season, "league desc", 1, 1);
     teamLeagueHome = new TeamLeague(league, homeTeam, "home", "homeTeam");
     teamLeagueAway = new TeamLeague(league, awayTeam, "away", "awayTeam");
     player         = new Player("Phil", "Hale");
     fixtureDate    = DateTime.Today;
     fixture        = new Fixture(teamLeagueHome, teamLeagueAway, fixtureDate, user);
 }
        // TODO This method really needs refactoring as it's difficult to unit test
        public void SaveMatchStats(bool hasPlayerStats, List<PlayerFixtureStats> playerStats, TeamLeague teamLeague, Fixture fixture)
        {
            // Deal appropriately with each player
            // Existing or non existing players that played - update or insert
            // Existing players that did not play - delete
            // Non existing players that did not play - ignore
            List<PlayerFixture> playerStatsToUpdate = new List<PlayerFixture>();
            PlayerFixture actionablePlayerFixture = null;
            foreach (var ps in playerStats)
            {
                if (ps.PlayerFixtureId > 0)
                    actionablePlayerFixture = this.statsReportingService.GetPlayerFixture(ps.PlayerFixtureId);
                else
                {
                    // Not need to add scores or fouls yet. That will be done by MapToPlayerFixture
                    // Not sure if the new Player setting Id thing will work
                    actionablePlayerFixture = new PlayerFixture(teamLeague, fixture, playerService.Get(ps.PlayerId), 0, 0);
                }

                if (ps.HasPlayed)
                {
                    matchResultRepository.InsertOrUpdatePlayerFixture(ps.MapToPlayerFixture(actionablePlayerFixture));
                    playerStatsToUpdate.Add(actionablePlayerFixture);
                }
                else if (!ps.HasPlayed && ps.PlayerFixtureId > 0)
                {
                    matchResultRepository.DeletePlayerFixture(actionablePlayerFixture);
                    // Awful hack alert. Because the PlayerFixture has been deleted the PlayerFixture.Player object will
                    // be null. But, we still need it, so the only solution I can currently think of is to get it again
                    playerStatsToUpdate.Add(new PlayerFixture(teamLeague, fixture, playerService.Get(ps.PlayerId), 0, 0));
                }
            }

            Commit();

            // Are all commits necessary?

            // Update player league stats
            UpdatePlayerLeagueStats(playerStatsToUpdate, teamLeague.League);
            Commit();

            // Update player season stats
            Season currentSeason = competitionService.GetCurrentSeason();
            UpdatePlayerSeasonStats(playerStatsToUpdate, currentSeason);
            Commit();

            if(fixture.IsCupFixture)
            {
                UpdatePlayerCupStats(playerStatsToUpdate, fixture.Cup, currentSeason);
                Commit();
            }

            // Update player career stats
            UpdatePlayerCareerStats(playerStatsToUpdate);
            Commit();

            // Update team stats
            UpdateTeamLeagueStats(teamLeague.Id);
            Commit();
        }
        public void GetHomeWins_AwayForfeit_ReturnsOne()
        {
            TeamLeague teamLeague = new TeamLeague() { Id = 1, Team = new Team() { Id = 12 } };
            List<Fixture> fixtures = new List<Fixture>();
            Team forfeitingTeam = new Team() { Id = 11 };
            fixtures.Add(new Fixture()
            {
                IsPlayed = "Y",
                IsCupFixture = false,
                Id = 1,
                HomeTeamLeague = teamLeague,
                AwayTeamLeague = new TeamLeague() { Id = 2, Team = forfeitingTeam},
                IsForfeit = true,
                ForfeitingTeam = forfeitingTeam
            });

            Assert.That(teamLeague.GetHomeWins(fixtures), Is.EqualTo(1));
        }
 public void Setup()
 {
     user = new User();
     season = new Season(2008, 2009);
     homeTeam = new Team("home", "homeTeam");
     homeTeam.Id = 1;
     awayTeam = new Team("away", "awayTeam");
     awayTeam.Id = 2;
     league = new League(season, "league desc", 1, 1);
     homeTeamLeague = new TeamLeague(league, homeTeam, "home", "homeTeam");
     awayTeamLeague = new TeamLeague(league, awayTeam, "away", "awayTeam");
     fixtureDate = DateTime.Today;
 }
        /// <summary>
        /// Returns a complete list of PlayerFixtureStats representing an entire team for 
        /// a fixture, regardless of whether the player has played in the fixture
        /// </summary>
        /// <param name="existingPlayerFixtures"></param>
        /// <param name="allPlayersInTeam"></param>
        /// <param name="teamLeague"></param>
        /// <param name="fixture"></param>
        /// <returns></returns>
        public List<PlayerFixtureStats> MapToPlayerFixtureStats(List<PlayerFixture> existingPlayerFixtures, 
            List<Player> allPlayersInTeam,
            TeamLeague teamLeague,
            Fixture fixture)
        {
            List<PlayerFixtureStats> playerFixturesScreen = new List<PlayerFixtureStats>();
            PlayerFixture existingPlayerFixture;

            foreach (Player player in allPlayersInTeam)
            {
                // Select PF record if exists
                existingPlayerFixture = existingPlayerFixtures.Where(x => x.Player.Id == player.Id).SingleOrDefault();

                // If a PF record exists, add it. If not, add a blank record
                if (existingPlayerFixture != null)
                    playerFixturesScreen.Add(new PlayerFixtureStats(existingPlayerFixture, true));
                else
                    playerFixturesScreen.Add(new PlayerFixtureStats(new PlayerFixture(teamLeague, fixture, player, 0, 0), false));

            }

            return playerFixturesScreen;
        }
        public void GetLeaguePointsFromLosses_FourGamesTwoLossesHomeAndAway_ReturnsTwo()
        {
            var teamLeagueA = new TeamLeague() { Id = 1 };
            var teamLeagueB = new TeamLeague() { Id = 2 };
            var fixtures = new List<Fixture>();
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, false)); // A loss
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true)); // A loss
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, false)); // B loss

            Assert.That(teamLeagueA.GetLeaguePointsFromLosses(fixtures), Is.EqualTo(StandingsCalculations.LeaguePointsLoss * 2));
        }
        public void GetLeaguePointsFromWins_FourGamesTwoWinsHomeAndAway_ReturnsSix()
        {
            var teamLeagueA = new TeamLeague() { Id = 1 };
            var teamLeagueB = new TeamLeague() { Id = 2 };
            var fixtures = new List<Fixture>();
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, true)); // A win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, false)); // A win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true)); // B win

            Assert.That(teamLeagueA.GetLeaguePointsFromWins(fixtures), Is.EqualTo(StandingsCalculations.LeaguePointsWin * 2));
        }
        //protected Player SavePlayer(Player player)
        //{
        //    playerRepository.SaveOrUpdate(player);
        //    FlushSessionAndEvict(player);
        //    return player;
        //}
        private PlayerFixture AddPlayerFixture(TeamLeague teamLeague, Fixture fixture, Player player, int points, int fouls, bool isMvp)
        {
            PlayerFixture playerFixture = new PlayerFixture(teamLeague, fixture, player, points, fouls);

            if (isMvp)
                playerFixture.IsMvp = "Y";
            else
                playerFixture.IsMvp = "N";

            //statsRepository.SaveOrUpdatePlayerFixture(playerFixture);
            //FlushSessionAndEvict(playerFixture);
            return playerFixture;
        }
 public void UpdateTeamLeague(TeamLeague teamLeague)
 {
     teamLeagueRepository.Update(teamLeague);
 }
Exemplo n.º 27
0
        public bool IsHomeTeam(TeamLeague teamLeague)
        {
            if(teamLeague == null)
                throw new ArgumentException("Parameter teamLeague cannot be null");

            return this.HomeTeamLeague.Id == teamLeague.Id;
        }
        public void GetPointsScoredFor_OneWinOneLoss_ReturnsForty()
        {
            var teamLeagueA = new TeamLeague() { Id = 1 };
            var teamLeagueB = new TeamLeague() { Id = 2 };
            var fixtures = new List<Fixture>();
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, true)); // A win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true)); // A loss

            Assert.That(teamLeagueA.GetPointsScoredFor(fixtures), Is.EqualTo(40));
        }
        public void IsHomeTeam_PassHomeTeam_True()
        {
            TeamLeague homeTeamLeague = new TeamLeague() { Id = 1 };
            TeamLeague awayTeamLeague = new TeamLeague() { Id = 2 };
            Fixture f = new Fixture() { HomeTeamLeague = homeTeamLeague, AwayTeamLeague = awayTeamLeague};

            Assert.That(f.IsHomeTeam(homeTeamLeague), Is.True);
        }
        //public void AddTeamLeaguePenalty(int teamLeagueId, int penaltyPoints)
        //{
        //    TeamLeague teamLeague = teamLeagueRepository.Get(teamLeagueId);
        //    teamLeague.PointsPenalty = penaltyPoints;
        //    //teamLeague = teamLeagueRepository.SaveOrUpdate(teamLeague);
        //    //FlushSessionAndEvict(teamLeague);
        //}
        private Fixture AddFixture(TeamLeague home, TeamLeague away, string fixtureDate, User lastUpdatedBy)
        {
            Fixture fixture = new Fixture(home, away, DateTime.Parse(fixtureDate), lastUpdatedBy);

            fixture.IsCupFixture = false;
            //fixture = fixtureRepository.SaveOrUpdate(fixture);
            //FlushSessionAndEvict(fixture);

            CurrentSeasonFixtures.Add(fixture);

            return fixture;
        }
        public void HomeAndAwayWins_TwoHomeWinsOneAwayWin_ReturnsTwoHomeWinsAndOneAwayWin()
        {
            var teamLeagueA = new TeamLeague() { Id = 1 };
            var teamLeagueB = new TeamLeague() { Id = 2 };
            var teamLeagueC = new TeamLeague() { Id = 3 };
            var fixtures = new List<Fixture>();
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, true)); // A home win
            fixtures.Add(GetFixture(teamLeagueA, teamLeagueB, true)); // A home win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, false)); // A away win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueA, true)); // B win
            fixtures.Add(GetFixture(teamLeagueB, teamLeagueC, true));

            Assert.That(teamLeagueA.GetHomeWins(fixtures), Is.EqualTo(2));
            Assert.That(teamLeagueA.GetAwayWins(fixtures), Is.EqualTo(1));
            Assert.That(teamLeagueA.GetTotalWins(fixtures), Is.EqualTo(3));
        }
        private TeamLeague AddTeamLeague(Team team, League league)
        {
            TeamLeague teamLeague = new TeamLeague(league, team, team.TeamName, team.TeamNameLong);

            //teamLeague = teamLeagueRepository.SaveOrUpdate(teamLeague);
            //FlushSessionAndEvict(teamLeague);

            return teamLeague;
        }
        private Fixture GetFixture(TeamLeague homeTeamLeague, TeamLeague awayTeameLeague, bool isHomeWin, bool isPlayed = true)
        {
            var fixture = new Fixture() { HomeTeamLeague = homeTeamLeague, AwayTeamLeague = awayTeameLeague };

            fixture.IsPlayed = isPlayed ? "Y" : "N";

            if(isHomeWin)
            {
                fixture.HomeTeamScore = 30;
                fixture.AwayTeamScore = 10;
            }
            else
            {
                fixture.HomeTeamScore = 10;
                fixture.AwayTeamScore = 30;
            }

            return fixture;
        }