public void SetUp() { var gamesStage1 = new List <Game>() { new Game { Team1Id = 1, Team2Id = 2, Stage = 1 }, new Game { Team1Id = 4, Team2Id = 3, Stage = 1 }, new Game { Team1Id = 5, Team2Id = 6, Stage = 1 }, }; var gamesStage2 = new List <Game>() { new Game { Team1Id = 1, Team2Id = 4, Stage = 1 } }; _bundesligaContextService = Substitute.For <IBundesligaContextService>(); _bundesligaContextService.GetGamesByStage(1).Returns(gamesStage1); _bundesligaContextService.GetGamesByStage(2).Returns(gamesStage2); _bundesligaService = new BundesligaService(_bundesligaContextService); }
public Game AddGame(Game game) { var gamesInSpecificStage = _bundesligaContextService.GetGamesByStage(game.Stage); if (gamesInSpecificStage.Any(x => x.Team1Id == game.Team1Id || x.Team2Id == game.Team1Id || x.Team1Id == game.Team2Id || x.Team2Id == game.Team2Id)) { ThrowFault("Cannot insert multiple games for the same team in one stage."); } if (game.Team1Id == game.Team2Id) { ThrowFault("Invalid game. A team cannot play itself"); } return(_bundesligaContextService.InsertGame(game)); }