public void GenerateFailureCountryDoesntExistsInTheRepo() { GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult((Country)null)); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; String errorMessage = response.Content.ReadAsStringAsync().Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); Assert.AreEqual(errorMessage, "{\"Message\":\"The country doesn't exist\"}"); }
// Mocking the valide generation for a determined number of players (return the created leagues) private List <League> _initGenerateLeagueValidPlayers(int nbPlayers) { GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); fillPlayerLeagues(generateLeagueDTO, nbPlayers); List <Team> teams = new List <Team>(); for (int i = 0; i < nbPlayers; i++) { teams.Add(new Team()); } Season season = new Season(); Player player = new Player(); // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); mock.As <ICRUDRepository <League, int, LeagueFilter> >().Setup(l => l.GetAllWithFilter(It.IsAny <LeagueFilter>())) .Returns(Task.FromResult((IEnumerable <League>)null)); // Mocking the creation of the league createLeagueAttachedToPlayers List <League> createdLeagues = new List <League>(); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); // Setting up that the country name already exist mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(false)); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Setting up that the teams mockTeamRepo.As <ICRUDRepository <Team, int, TeamFilter> >().Setup(s => s.GetAllWithFilter(It.IsAny <TeamFilter>())) .Returns(Task.FromResult((IEnumerable <Team>)teams)); // mocking the answer mock.As <ILeagueRepository>().Setup(l => l.GetViewModel(It.IsAny <int>())) .Returns(Task.FromResult(new LeagueViewModel())); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Get(nbPlayers, new GenerateLeagueDTO()).Result; var objectContent = response.Content as ObjectContent; return((List <League>)objectContent.Value); }
public void GenerateFailureIfModelStateNotValid() { GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); fillPlayerLeagues(generateLeagueDTO, 4); List <Team> teams = new List <Team>(); for (int i = 0; i < 8; i++) { teams.Add(new Team()); } // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); mock.As <ICRUDRepository <League, int, LeagueFilter> >().Setup(l => l.GetAllWithFilter(It.IsAny <LeagueFilter>())) .Returns(Task.FromResult((IEnumerable <League>)null)); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); // Setting up that the country name already exist mockSeasonRepo.As <ICRUDRepository <Season, int, SeasonFilter> >().Setup(s => s.Get(It.IsAny <int>())) .Returns(Task.FromResult(new Season())); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Setting up that the teams mockTeamRepo.As <ICRUDRepository <Team, int, TeamFilter> >().Setup(s => s.GetAllWithFilter(It.IsAny <TeamFilter>())) .Returns(Task.FromResult((IEnumerable <Team>)teams)); // Setting up that the country name already exist mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(false)); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); // Facking a model error controller.ModelState.AddModelError("key", "errorMessage"); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; String errorMessage = response.Content.ReadAsStringAsync().Result; // the result should say "HttpStatusCode.BadRequest" Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); Assert.AreEqual(errorMessage, "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"key\":[\"errorMessage\"]}}"); }
public void GenerateFailureLeagueLessThanFourPlayers() { GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); generateLeagueDTO.PlayerLeagues = new List <PlayerAssignLeagueModel>(); generateLeagueDTO.Rules = new RuleSet(); // We create a list of players List <Player> players = new List <Player>(); for (int i = 0; i < 3; i++) { players.Add(new Player()); } PlayerAssignLeagueModel playerLeague = new PlayerAssignLeagueModel { league = new League(), Players = players }; generateLeagueDTO.PlayerLeagues.Add(playerLeague); // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); mock.As <ICRUDRepository <League, int, LeagueFilter> >().Setup(l => l.GetAllWithFilter(It.IsAny <LeagueFilter>())) .Returns(Task.FromResult((IEnumerable <League>)null)); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); // Setting up that the country name already exist mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(false)); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Setting up that the teams mockTeamRepo.As <ICRUDRepository <Team, int, TeamFilter> >().Setup(s => s.GetAllWithFilter(It.IsAny <TeamFilter>())) .Returns(Task.FromResult((IEnumerable <Team>) new List <Team>())); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; String errorMessage = response.Content.ReadAsStringAsync().Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); Assert.AreEqual(errorMessage, "{\"Message\":\"You must choose at least 4 players.\"}"); }
public void GenerateFailureNullLeagueInTheRepo() { // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(null).Result; // the result should say "HttpStatusCode.BadRequest" Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); }
public void GenerateFailureSeasonNameExistsInTheRepo() { IEnumerable <League> leagues = CreateLeagueList(); GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); mock.As <ICRUDRepository <League, int, LeagueFilter> >().Setup(l => l.GetAllWithFilter(It.IsAny <LeagueFilter>())) .Returns(Task.FromResult(leagues)); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); // Setting up that the country name already exist mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(true)); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; String errorMessage = response.Content.ReadAsStringAsync().Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); Assert.AreEqual(errorMessage, "{\"Message\":\"The season name already exists for this country\"}"); }
public void GenerateLeagueWithOnlyOneTeamReturnsAFailure() { League league = new League(); GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); fillPlayerLeagues(generateLeagueDTO, 4); //Add 4 people to first league // We create a list of players List <Player> players = new List <Player>() { new Player() }; //Add second league with just one player generateLeagueDTO.PlayerLeagues.Add(new PlayerAssignLeagueModel { league = new League { Name = "League 2" }, Players = players }); List <Team> teams = new List <Team>(); for (int i = 0; i < 5; i++) { teams.Add(new Team()); } Season season = new Season(); Player player = new Player(); var mockLeagueRepo = new Mock <ILeagueRepository>(MockBehavior.Strict); List <League> createdLeagues = new List <League>(); //Mock the season repo to replay that the season name does not already exist var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(false)); //Mock the country repo to return a country, a country is needed to create seasons var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); //Mock the team repo to return the list of teams we created earlier var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); mockTeamRepo.As <ICRUDRepository <Team, int, TeamFilter> >().Setup(s => s.GetAllWithFilter(It.IsAny <TeamFilter>())) .Returns(Task.FromResult((IEnumerable <Team>)teams)); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mockLeagueRepo.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); String errorMessage = response.Content.ReadAsStringAsync().Result; Assert.AreEqual(errorMessage, "{\"Message\":\"A league must have at least 2 players\"}"); }
public void GenerateLeagueValidPlayersWithTeam() { League league = new League(); GenerateLeagueDTO generateLeagueDTO = new GenerateLeagueDTO(); fillPlayerLeagues(generateLeagueDTO, 4); List <Team> teams = new List <Team>(); for (int i = 0; i < 8; i++) { teams.Add(new Team()); } Season season = new Season(); Player player = new Player(); // Filling mock rull with repository var mock = new Mock <ILeagueRepository>(MockBehavior.Strict); mock.As <ICRUDRepository <League, int, LeagueFilter> >().Setup(l => l.GetAllWithFilter(It.IsAny <LeagueFilter>())) .Returns(Task.FromResult((IEnumerable <League>)null)); // Mocking the creation of the league createLeagueAttachedToPlayers mock.As <ILeagueRepository>().Setup(l => l.createSeasonWithLeagues(It.IsAny <Season>(), It.IsAny <List <League> >())) .Returns(Task.FromResult(season)); var mockSeasonRepo = new Mock <ISeasonRepository>(MockBehavior.Strict); // Setting up that the country name already exist mockSeasonRepo.As <ICRUDRepository <Season, int, SeasonFilter> >().Setup(s => s.Get(It.IsAny <int>())) .Returns(Task.FromResult(new Season())); // Setting up that the country name already exist mockSeasonRepo.As <ISeasonRepository>().Setup(s => s.isSeasonNameExist(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int?>())) .Returns(Task.FromResult(false)); var mockCountry = new Mock <ICountryRepository>(MockBehavior.Strict); mockCountry.As <ICountryRepository>().Setup(c => c.Get(It.IsAny <int>())).Returns(Task.FromResult(new Country())); var mockTeamRepo = new Mock <ITeamRepository>(MockBehavior.Strict); // Setting up that the teams mockTeamRepo.As <ICRUDRepository <Team, int, TeamFilter> >().Setup(s => s.GetAllWithFilter(It.IsAny <TeamFilter>())) .Returns(Task.FromResult((IEnumerable <Team>)teams)); // mocking the answer mock.As <ILeagueRepository>().Setup(l => l.GetViewModel(It.IsAny <int>())) .Returns(Task.FromResult(new LeagueViewModel())); // Creating the controller which we want to create GenerateLeagueController controller = new GenerateLeagueController(mock.Object, mockSeasonRepo.Object, mockTeamRepo.Object, mockCountry.Object); // configuring the context for the controler fakeContext(controller); HttpResponseMessage response = controller.Post(generateLeagueDTO).Result; // the result should say "HttpStatusCode.Created" Assert.AreEqual(response.StatusCode, HttpStatusCode.Created); }