Beispiel #1
0
        public void ShouldProcessGame()
        {
            var seasonConfig = new SeasonCompetitionConfig("Test", null, 1, null, null, 1, null, null, null, null, null, null);
            var season       = new Season(seasonConfig, seasonConfig.Name, 1, null, null, null, null, true, false, 1, null);
            var teams        = new List <Team>()
            {
                CreateTeam("Team 1", 1), CreateTeam("Team 2", 2), CreateTeam("Team 3", 3), CreateTeam("Team 4", 4)
            };
            var rules = new GameRules(null, true, 1, 3, 10, true);
            var games = new List <ScheduleGame>()
            {
                new ScheduleGame(null, 1, 1, 1, teams[0], null, teams[1], null, 1, 1, true, 1, 0, rules, false),
                new ScheduleGame(null, 1, 1, 1, teams[0], null, teams[2], null, 3, 1, true, 1, 0, rules, false),
                new ScheduleGame(null, 1, 1, 1, teams[0], null, teams[3], null, 1, 4, true, 1, 0, rules, false)
            };

            var team1 = new SeasonTeam(null, teams[0], "Team 1", null, null, 5, null, 1, null, null, null);
            var team2 = new SeasonTeam(null, teams[1], "Team 2", null, null, 5, null, 1, null, null, null);
            var team3 = new SeasonTeam(null, teams[2], "Team 3", null, null, 5, null, 1, null, null, null);
            var team4 = new SeasonTeam(null, teams[3], "Team 4", null, null, 5, null, 1, null, null, null);

            season.Teams = new List <CompetitionTeam>()
            {
                team1, team2, team3, team4
            };

            games.ForEach(g => { season.ProcessGame(g, 1); });

            StrictEqual(3, team1.Stats.Games);
            StrictEqual(3, team1.Stats.Points);
            StrictEqual(1, team1.Stats.Wins);
            StrictEqual(1, team1.Stats.Loses);
            StrictEqual(1, team1.Stats.Ties);
            StrictEqual(5, team1.Stats.GoalsFor);
            StrictEqual(6, team1.Stats.GoalsAgainst);

            StrictEqual(1, team2.Stats.Games);
            StrictEqual(1, team2.Stats.Points);
            StrictEqual(0, team2.Stats.Wins);
            StrictEqual(0, team2.Stats.Loses);
            StrictEqual(1, team2.Stats.Ties);
            StrictEqual(1, team2.Stats.GoalsFor);
            StrictEqual(1, team2.Stats.GoalsAgainst);

            StrictEqual(1, team3.Stats.Games);
            StrictEqual(0, team3.Stats.Points);
            StrictEqual(0, team3.Stats.Wins);
            StrictEqual(1, team3.Stats.Loses);
            StrictEqual(0, team3.Stats.Ties);
            StrictEqual(1, team3.Stats.GoalsFor);
            StrictEqual(3, team3.Stats.GoalsAgainst);

            StrictEqual(1, team4.Stats.Games);
            StrictEqual(2, team4.Stats.Points);
            StrictEqual(1, team4.Stats.Wins);
            StrictEqual(0, team4.Stats.Loses);
            StrictEqual(0, team4.Stats.Ties);
            StrictEqual(4, team4.Stats.GoalsFor);
            StrictEqual(1, team4.Stats.GoalsAgainst);
        }
Beispiel #2
0
        public void ShouldTestGetCurrentCompetitionConfig()
        {
            var league = new League("League 1", 1, null);

            var seasonConfig1 = new SeasonCompetitionConfig("SeasonConfig 1", league, 1, 1, null, 1, null, null, null, null, null, null);
            var seasonConfig2 = new SeasonCompetitionConfig("SeasonConfig 2", league, 2, 1, 11, 6, null, null, null, null, null, null);
            var seasonConfig3 = new SeasonCompetitionConfig("SeasonConfig 3", league, 5, 1, 12, 15, null, null, null, null, null, null);
            var seasonConfig4 = new SeasonCompetitionConfig("SeasonConfig 4", league, 10, 1, 15, 55, null, null, null, null, null, null);

            league.CompetitionConfigs.Add(seasonConfig1);
            league.CompetitionConfigs.Add(seasonConfig2);
            league.CompetitionConfigs.Add(seasonConfig3);
            league.CompetitionConfigs.Add(seasonConfig4);

            True(seasonConfig1.IsActive(1), null);
            True(seasonConfig1.IsActive(2), null);
            Equal(seasonConfig1.Name, league.GetNextCompetitionConfig(null, 1).Name);
            Equal(seasonConfig1.Name, league.GetNextCompetitionConfig(null, 55).Name);

            Null(league.GetNextCompetitionConfig(seasonConfig1, 55));

            Equal(seasonConfig1.Name, league.GetNextCompetitionConfig(null, 10).Name);
            Equal(seasonConfig2.Name, league.GetNextCompetitionConfig(seasonConfig1, 10).Name);
            Equal(seasonConfig3.Name, league.GetNextCompetitionConfig(seasonConfig2, 10).Name);
            Equal(seasonConfig3.Name, league.GetNextCompetitionConfig(seasonConfig2, 10).Name);

            Equal(seasonConfig3.Name, league.GetNextCompetitionConfig(seasonConfig1, 12).Name);
            Equal(seasonConfig4.Name, league.GetNextCompetitionConfig(seasonConfig1, 13).Name);
            Null(league.GetNextCompetitionConfig(seasonConfig4, 13));
        }
Beispiel #3
0
 public SeasonTeamRule(SeasonCompetitionConfig competition, Team team, SeasonDivisionRule division, int?firstYear, int?lastYear)
 {
     Competition = competition;
     Team        = team;
     Division    = division;
     FirstYear   = firstYear;
     LastYear    = lastYear;
 }
        public List <MockTeam> SetupMockTeams(SeasonCompetitionConfig config)
        {
            var list = new List <MockTeam>();

            config.TeamRules.ToList().ForEach(t =>
            {
                list.Add(new MockTeam(t.Team.Id, t.Team.Name));
            });

            return(list);
        }
Beispiel #5
0
 public SeasonScheduleRule(SeasonCompetitionConfig competition, Team homeTeam, SeasonDivisionRule homeDivisionRule, Team awayTeam, SeasonDivisionRule awayDivisionRule, int iterations, bool homeAndAway, int?firstYear, int?lastYear)
 {
     Competition      = competition;
     HomeTeam         = homeTeam;
     HomeDivisionRule = homeDivisionRule;
     AwayTeam         = awayTeam;
     AwayDivisionRule = awayDivisionRule;
     Iterations       = iterations;
     HomeAndAway      = homeAndAway;
     FirstYear        = firstYear;
     LastYear         = lastYear;
 }
Beispiel #6
0
        public static SeasonCompetitionConfig CreateMediumSeasonConfig(League league, List <Team> teamList, List <CompetitionConfig> parents, int?startingDay, int order)
        {
            var seasonConfig = new SeasonCompetitionConfig("Regular Season", league, startingDay, order, null, 1, null, null, null, null, null, null);

            seasonConfig.GameRules = new GameRules("Season Rules", true, 1, 3, 120, true);

            seasonConfig.Parents = parents;

            var drNhl = new SeasonDivisionRule(seasonConfig, "NHL", null, 1, 1, null, 1, null);

            seasonConfig.DivisionRules = new List <SeasonDivisionRule>()
            {
                drNhl
            };

            seasonConfig.ScheduleRules = new List <SeasonScheduleRule>()
            {
                new SeasonScheduleRule(seasonConfig, null, drNhl, null, null, 3, false, 1, null),
            };

            var seasonTeamRules = new List <SeasonTeamRule>()
            {
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Ottawa").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Toronto").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Calgary").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Montreal").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Edmonton").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Vancouver").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Winnipeg").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Quebec").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Hamilton").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Halifax").First(), drNhl, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Victoria").First(), drNhl, 1, null),
            };

            drNhl.Teams = seasonConfig.GetTeamsInDivision("NHL").ToList();

            seasonConfig.TeamRules = seasonTeamRules;

            league.CompetitionConfigs.Add(seasonConfig);

            return(seasonConfig);
        }
Beispiel #7
0
        public void ShouldExerciseCompetitionConfigRepositoryNHibernate()
        {
            var repo = new CompetitionConfigRepository(new RepositoryNHibernate <CompetitionConfig>());

            var config1 = new SeasonCompetitionConfig("Season 1", null, 1, 1, 12, 1, null, null, null, null, null, null);
            var config2 = new SeasonCompetitionConfig("Season 2", null, 1, 1, 12, 1, null, null, null, null, null, null);
            var config3 = new SeasonCompetitionConfig("Season 3", null, 1, 3, 12, 1, null, null, null, null, null, null);
            var config4 = new SeasonCompetitionConfig("Season 4", null, 5, 1, 12, 1, null, null, null, null, null, null);
            var config5 = new SeasonCompetitionConfig("Season 5", null, 5, 2, 12, 1, null, null, null, null, null, null);

            repo.Update(config1);
            repo.Update(config2);
            repo.Update(config3);
            repo.Update(config4);
            repo.Update(config5);

            //GetConfigByStartingDayAndYear
            StrictEqual(3, repo.GetConfigByStartingDayAndYear(1, 6).Count());
            StrictEqual(2, repo.GetConfigByStartingDayAndYear(1, 2).Count());
            //GetConfigByYear
            StrictEqual(5, repo.GetConfigByYear(8).Count());
            StrictEqual(4, repo.GetConfigByYear(2).Count());
        }
        private SeasonCompetitionConfig CreateConfig()
        {
            var seasonConfig = new SeasonCompetitionConfig("My Season", null, 1, 1, null, 1, null, null, null, null, null, null);
            var sdrNHL       = new SeasonDivisionRule(seasonConfig, "NHL", null, 1, 1, null, 1, null)
            {
                Id = 1
            };
            var sdrEastern = new SeasonDivisionRule(seasonConfig, "Eastern", sdrNHL, 2, 1, null, 1, null)
            {
                Id = 2
            };
            var sdrWestern = new SeasonDivisionRule(seasonConfig, "Western", sdrNHL, 2, 2, null, 1, null)
            {
                Id = 3
            };
            var sdrEast = new SeasonDivisionRule(seasonConfig, "East", sdrEastern, 2, 1, null, 1, null)
            {
                Id = 4
            };
            var sdrAtlantic = new SeasonDivisionRule(seasonConfig, "Atlantic", sdrEastern, 2, 2, null, 1, null)
            {
                Id = 5
            };
            var sdrNorthEast = new SeasonDivisionRule(seasonConfig, "NorthEast", sdrEastern, 2, 3, null, 1, null)
            {
                Id = 6
            };
            var sdrWest = new SeasonDivisionRule(seasonConfig, "West", sdrWestern, 2, 4, null, 1, null)
            {
                Id = 7
            };
            var sdrCentral = new SeasonDivisionRule(seasonConfig, "Central", sdrWestern, 2, 5, null, 1, null)
            {
                Id = 8
            };
            var sdrCentralA = new SeasonDivisionRule(seasonConfig, "Central A", sdrCentral, 3, 1, null, 1, null)
            {
                Id = 9
            };
            var sdrCentralB = new SeasonDivisionRule(seasonConfig, "Central B", sdrCentral, 3, 2, null, 1, null)
            {
                Id = 10
            };


            var bruins = new Team()
            {
                Name = "Boston", NickName = "Bruins", FirstYear = 1, Active = true, Id = 1
            };                                                                                                      //east
            var canadiens = new Team()
            {
                Name = "Montreal", NickName = "Canadiens", FirstYear = 1, Active = true, Id = 2
            };                                                                                                              //east
            var mapleLeafs = new Team()
            {
                Name = "Toronto", NickName = "Maple Leafs", FirstYear = 1, Active = true, Id = 3
            };                                                                                                                //esat
            var nordiques = new Team()
            {
                Name = "Quebec", NickName = "Nordiques", FirstYear = 1, Active = true, Id = 4
            };                                                                                                            //atlantic
            var penguins = new Team()
            {
                Name = "Pittsburgh", NickName = "Penguins", FirstYear = 1, Active = true, Id = 5
            };                                                                                                              //northeast
            var devils = new Team()
            {
                Name = "New Jersey", NickName = "Devils", FirstYear = 1, Active = true, Id = 6
            };                                                                                                          //northeast
            var sharks = new Team()
            {
                Name = "San Josey", NickName = "Sharks", FirstYear = 1, Active = true, Id = 7
            };                                                                                                         //west
            var oilers = new Team()
            {
                Name = "Edmonton", NickName = "Oilers", FirstYear = 1, Active = true, Id = 8
            };                                                                                                        //west
            var flames = new Team()
            {
                Name = "Calgary", NickName = "Flames", FirstYear = 1, Active = true, Id = 9
            };                                                                                                       //west
            var canucks = new Team()
            {
                Name = "Vancouver", NickName = "Canucks", FirstYear = 1, Active = true, Id = 10
            };                                                                                                            //west
            var jets = new Team()
            {
                Name = "Winnipeg", NickName = "Jets", FirstYear = 1, Active = true, Id = 11
            };                                                                                                    //Central A
            var stars = new Team()
            {
                Name = "Minnesota", NickName = "Stars", FirstYear = 1, Active = true, Id = 12
            };                                                                                                       //Central A
            var blackHawks = new Team()
            {
                Name = "Chicago", NickName = "Blackhawks", FirstYear = 1, Active = true, Id = 13
            };                                                                                                               //Central B
            var redWings = new Team()
            {
                Name = "Detroit", NickName = "Red Wings", FirstYear = 1, Active = true, Id = 14
            };                                                                                                            //Central B


            var seasonTeamRules = new List <SeasonTeamRule>()
            {
                new SeasonTeamRule(seasonConfig, bruins, sdrEast, 1, null)
                {
                    Id = 1
                },
                new SeasonTeamRule(seasonConfig, canadiens, sdrEast, 1, null)
                {
                    Id = 2
                },
                new SeasonTeamRule(seasonConfig, mapleLeafs, sdrEast, 1, null)
                {
                    Id = 3
                },
                new SeasonTeamRule(seasonConfig, nordiques, sdrAtlantic, 1, null)
                {
                    Id = 4
                },
                new SeasonTeamRule(seasonConfig, penguins, sdrNorthEast, 1, null)
                {
                    Id = 5
                },
                new SeasonTeamRule(seasonConfig, devils, sdrNorthEast, 1, null)
                {
                    Id = 6
                },
                new SeasonTeamRule(seasonConfig, sharks, sdrWest, 1, null)
                {
                    Id = 7
                },
                new SeasonTeamRule(seasonConfig, oilers, sdrWest, 1, null)
                {
                    Id = 8
                },
                new SeasonTeamRule(seasonConfig, flames, sdrWest, 1, null)
                {
                    Id = 9
                },
                new SeasonTeamRule(seasonConfig, canucks, sdrWest, 1, null)
                {
                    Id = 10
                },
                new SeasonTeamRule(seasonConfig, jets, sdrCentralA, 1, null)
                {
                    Id = 11
                },
                new SeasonTeamRule(seasonConfig, stars, sdrCentralA, 1, null)
                {
                    Id = 12
                },
                new SeasonTeamRule(seasonConfig, blackHawks, sdrCentralB, 1, null)
                {
                    Id = 13
                },
                new SeasonTeamRule(seasonConfig, redWings, sdrCentralB, 1, null)
                {
                    Id = 14
                }
            };

            var scheduleRules = new List <SeasonScheduleRule>()
            {
                new SeasonScheduleRule(seasonConfig, null, sdrNHL, null, null, 1, true, 1, null)
                {
                    Id = 1
                }
            };

            var divisionRules = new List <SeasonDivisionRule>()
            {
                sdrNHL,
                sdrEastern,
                sdrWestern,
                sdrEast,
                sdrAtlantic,
                sdrNorthEast,
                sdrWest,
                sdrCentral,
                sdrCentralA,
                sdrCentralB
            };

            seasonConfig.DivisionRules = divisionRules;
            seasonConfig.TeamRules     = seasonTeamRules;
            seasonConfig.ScheduleRules = scheduleRules;

            sdrEast.Teams      = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("East"));
            sdrAtlantic.Teams  = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("Atlantic"));
            sdrNorthEast.Teams = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("NorthEast"));
            sdrWest.Teams      = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("West"));
            sdrCentralA.Teams  = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("Central A"));
            sdrCentralB.Teams  = seasonTeamRules.Where(str => str.Division.DivisionName.Equals("Central B"));

            return(seasonConfig);
        }
Beispiel #9
0
        public static SeasonCompetitionConfig CreateLargeSeasonConfiguration(League league, List <Team> teamList, List <CompetitionConfig> parents, int?startingDay, int order)
        {
            var seasonConfig = new SeasonCompetitionConfig("Regular Season", league, startingDay, order, null, 1, null, null, null, null, null, null);

            seasonConfig.GameRules = new GameRules("Season Rules", true, 1, 3, 120, true);

            seasonConfig.Parents = parents;

            var drNhl      = new SeasonDivisionRule(seasonConfig, "NHL", null, 1, 1, null, 1, null);
            var drWestern  = new SeasonDivisionRule(seasonConfig, "Western", drNhl, 2, 1, null, 1, null);
            var drEastern  = new SeasonDivisionRule(seasonConfig, "Eastern", drNhl, 2, 1, null, 1, null);
            var drWest     = new SeasonDivisionRule(seasonConfig, "West", drWestern, 3, 1, null, 1, null);
            var drEast     = new SeasonDivisionRule(seasonConfig, "East", drEastern, 3, 2, null, 1, null);
            var drCentral  = new SeasonDivisionRule(seasonConfig, "Central", drWestern, 3, 3, null, 1, null);
            var drAtlantic = new SeasonDivisionRule(seasonConfig, "Atlantic", drEastern, 3, 4, null, 1, null);
            var drPacific  = new SeasonDivisionRule(seasonConfig, "Pacific", drWestern, 3, 5, null, 1, null);
            var drSouth    = new SeasonDivisionRule(seasonConfig, "South", drEastern, 3, 6, null, 1, null);


            seasonConfig.DivisionRules = new List <SeasonDivisionRule>()
            {
                drNhl, drWestern, drEastern, drWest, drEast, drCentral, drAtlantic, drPacific, drSouth
            };

            seasonConfig.ScheduleRules = new List <SeasonScheduleRule>()
            {
                new SeasonScheduleRule(seasonConfig, null, drNhl, null, null, 1, false, 1, null),
            };

            var seasonTeamRules = new List <SeasonTeamRule>()
            {
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Ottawa").First(), drEast, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Toronto").First(), drEast, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Buffalo").First(), drEast, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.NickName == "Penguins").First(), drEast, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.NickName == "Flyers").First(), drEast, 1, null),

                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Montreal").First(), drAtlantic, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Quebec").First(), drAtlantic, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "New Jersey").First(), drAtlantic, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.NickName == "Rangers").First(), drAtlantic, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.NickName == "Islanders").First(), drAtlantic, 1, null),

                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Detroit").First(), drCentral, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Nashville").First(), drCentral, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Winnipeg").First(), drCentral, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Minnesota").First(), drCentral, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Chicago").First(), drCentral, 1, null),

                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Colorado").First(), drWest, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Calgary").First(), drWest, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Edmonton").First(), drWest, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Las Vegas").First(), drWest, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Saskatoon").First(), drWest, 1, null),

                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Vancouver").First(), drPacific, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Victoria").First(), drPacific, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Seattle").First(), drPacific, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "San Jose").First(), drPacific, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Los Angelas").First(), drPacific, 1, null),

                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Anaheim").First(), drSouth, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Tampa Bay").First(), drSouth, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Washington").First(), drSouth, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Florida").First(), drSouth, 1, null),
                new SeasonTeamRule(seasonConfig, teamList.Where(t => t.Name == "Atlanta").First(), drSouth, 1, null)
            };

            drEast.Teams     = seasonConfig.GetTeamsInDivision("East").ToList();
            drAtlantic.Teams = seasonConfig.GetTeamsInDivision("Atlantic").ToList();
            drCentral.Teams  = seasonConfig.GetTeamsInDivision("Central").ToList();
            drWest.Teams     = seasonConfig.GetTeamsInDivision("West").ToList();
            drPacific.Teams  = seasonConfig.GetTeamsInDivision("Pacific").ToList();
            drSouth.Teams    = seasonConfig.GetTeamsInDivision("South").ToList();

            seasonConfig.TeamRules = seasonTeamRules;

            league.CompetitionConfigs.Add(seasonConfig);

            return(seasonConfig);
        }
Beispiel #10
0
        public void ShouldExerciseCompetitionRepositoryNHibernate()
        {
            var league1 = new League("NHL", 1, null);
            var league2 = new League("NHL 2", 1, null);

            var leagueRepo = new LeagueRepository(new RepositoryNHibernate <League>());

            var repo       = new CompetitionRepository(new RepositoryNHibernate <Competition>());
            var configRepo = new CompetitionConfigRepository(new RepositoryNHibernate <CompetitionConfig>());
            var cc0        = new SeasonCompetitionConfig("Test B", league1, 1, 1, null, 1, null, null, null, null, null, null);
            var cc1        = new SeasonCompetitionConfig("Test 1", league1, 1, 1, null, 1, null, null, null, null, null, null);
            var c1         = new Season(cc1, "Test 1", 5, null, null, null, null, true, false, 5, 55);
            var cc2        = new PlayoffCompetitionConfig("P3", league1, 2, 25, null, 1, null, null, null, new List <CompetitionConfig> {
                cc1, cc0
            }, null);
            var c8  = new Playoff(cc2, "P3", 5, 5, null, null, null, null, false, false, 5, 12);
            var c2  = new Season(null, "Test 2", 6, null, null, null, null, true, true, 5, 55);
            var c3  = new Season(null, "Test 3", 7, null, null, null, null, true, false, 5, 55);
            var c4  = new Season(cc1, "Test 4", 8, null, null, null, null, true, false, 5, 55);
            var c5  = new Season(null, "Test 5", 9, null, null, null, null, true, false, 5, 55);
            var c6  = new Playoff(null, "P1", 8, 5, null, null, null, null, true, false, 5, 12);
            var c7  = new Playoff(null, "P2", 8, 5, null, null, null, null, false, false, 5, 12);
            var c9  = new Playoff(cc2, "P9", 15, 5, null, null, null, null, false, false, 5, 12);
            var c10 = new Playoff(cc2, "P10", 15, 5, null, null, null, null, false, true, 5, 12);
            var c11 = new Playoff(cc2, "P11", 15, 5, null, null, null, null, true, false, 5, 12);
            var c12 = new Playoff(cc2, "P12", 15, 5, null, null, null, null, true, true, 5, 12);

            configRepo.Update(cc2);
            repo.Update(c1);
            repo.Update(c2);
            repo.Update(c3);
            repo.Update(c4);
            repo.Update(c5);
            repo.Update(c6);
            repo.Update(c7);
            repo.Update(c8);
            repo.Update(c9);
            repo.Update(c10);
            repo.Update(c11);
            repo.Update(c12);

            var c10Id = c10.Id;

            //getall
            StrictEqual(12, repo.GetAll().Count());
            //GetByNameAndYear
            Equal("P3", repo.GetByNameAndYear("P3", 5).Name);
            //GetByYear
            StrictEqual(3, repo.GetByYear(8).Count());
            //GetStartedAndUnfinishedCompetitionsByYear
            StrictEqual(2, repo.GetStartedAndUnfinishedCompetitionsByYear(8).Count());
            StrictEqual(0, repo.GetStartedAndUnfinishedCompetitionsByYear(6).Count());
            //IsCompetitionCompleteForYear
            False(repo.IsCompetitionCompleteForYear(5, cc1));
            False(repo.IsCompetitionCompleteForYear(12, cc1)); //hasn't even been created yet!
            //GetParentCompetitionsForCompetitionConfig
            var parents = repo.GetParentCompetitionsForCompetitionConfig(cc2, 5).ToList();

            StrictEqual(1, parents.Count());
            Equal("Test 1", parents[0].Name);
            Equal(5, parents[0].Year);
            //GetCompetitionsForCompetitionConfig
            var competitionForConfig = repo.GetCompetitionForCompetitionConfig(cc2, 5);

            Equal("P3", competitionForConfig.Name);
            Equal(5, competitionForConfig.Year);

            var shouldBeNull = repo.GetCompetitionForCompetitionConfig(cc0, 5);

            Null(shouldBeNull);

            //IEnumerable<Competition> GetByLeagueAndYear(int leagueId, int year)
            StrictEqual(2, repo.GetByLeagueAndYear(league1.Id, 5).Count());
            StrictEqual(1, repo.GetByLeagueAndYear(league1.Id, 8).Count());
            StrictEqual(0, repo.GetByLeagueAndYear(league2.Id, 15).Count());

            //IEnumerable<Competition> GetByLeagueAndYear(int leagueId, int year, bool started, bool finished)

            Equal("P9", repo.GetByLeagueAndYear(league1.Id, 15, false, false).First().Name);
            Equal("P10", repo.GetByLeagueAndYear(league1.Id, 15, false, true).First().Name);
            Equal("P11", repo.GetByLeagueAndYear(league1.Id, 15, true, false).First().Name);
            Equal("P12", repo.GetByLeagueAndYear(league1.Id, 15, true, true).First().Name);

            //IEnumerable<CompetitionSimpleViewModel> GetCompetitionsByYear(int year);
            Single(repo.GetByYear(9));
            StrictEqual(2, repo.GetByYear(5).Count());

            //Competition GetCompetition(long id);
            Equal("P10", repo.Get(c10Id).Name);
        }