public IActionResult Post([FromBody] TeamModelIn teamIn) { try { if (ModelState.IsValid) { Team team = teamIn.TransformToEntity(); team = teamService.CreateTeam(team); TeamModelOut modelOut = new TeamModelOut(team); return(CreatedAtRoute("Get", new { id = team.TeamId }, modelOut)); } else { return(BadRequest(ModelState)); } } catch (NotUniqueException ex) { return(BadRequest(ex.Message)); } catch (Exception ex) { return(BadRequest("Ha ocurrido un error" + ex.Message)); } }
public IActionResult Put(int id, [FromBody] TeamModelIn modelIn) { try { if (ModelState.IsValid) { Team team = modelIn.TransformToEntity(); teamService.UpdateTeam(id, team); return(Ok("El equipo ha sido modificado")); } else { return(BadRequest(ModelState)); } } catch (ArgumentException ex) { return(BadRequest(ex.Message)); }catch (NotExistsException ex) { return(BadRequest(ex.Message)); }catch (NotUniqueException ex) { return(BadRequest(ex.Message)); } }
private TeamDto BuildTransferObject(TeamModelIn team) { return(new TeamDto() { id = team.Id, name = team.Name, photo = team.Photo, sportName = team.SportName }); }
public void CreateTeamWithoutPermissionTeamsController() { var teamServicesMock = new Mock <ITeamServices>(); var encounterServicesMock = new Mock <IEncounterSimpleServices>(); var encounterQueryServicesMock = new Mock <IEncounterQueryServices>(); TeamModelIn teamIn = new TeamModelIn() { Name = "Cavaliers", SportName = "Futbol" }; teamServicesMock.Setup(t => t.CreateTeam(It.IsAny <TeamDTO>())).Throws(new InsufficientPermissionException()); ILoginServices login = new LoginServicesMock(mariano); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Authorization"] = ""; var controllerContext = new ControllerContext() { HttpContext = httpContext, }; var controller = new TeamsController(login, teamServicesMock.Object, encounterServicesMock.Object, encounterQueryServicesMock.Object) { ControllerContext = controllerContext }; var result = controller.CreateTeam(teamIn); teamServicesMock.Verify(t => t.CreateTeam(It.IsAny <TeamDTO>()), Times.AtMostOnce); var unauthorizedResult = result as UnauthorizedResult; Assert.IsNotNull(unauthorizedResult); Assert.AreEqual(401, unauthorizedResult.StatusCode); }
private TeamModelIn GetTeamModelIn() { TeamModelIn fake = new TeamModelIn() { Name = "Internazionale de Milano", SportName = "Soccer", Id = 3, Photo = "" }; return(fake); }
public IActionResult Put(int teamId, [FromBody] TeamModelIn value) { IActionResult result; if (ModelState.IsValid) { result = PutValidFormat(teamId, value); } else { result = BadRequest(ModelState); } return(result); }
public IActionResult Post([FromBody] TeamModelIn team) { IActionResult result; if (ModelState.IsValid) { SetSession(); result = AddValidTeam(team); } else { result = BadRequest(ModelState); } return(result); }
private IActionResult AddValidTeam(TeamModelIn team) { IActionResult result; try { SetSession(); result = TryAddTeam(team); } catch (ServiceException e) { result = errors.GenerateError(e); } return(result); }
public IActionResult ModifyTeam(string id, [FromBody] TeamModelIn team) { if (!ModelState.IsValid) { return(BadRequest()); } try { return(TryToUpdate(team.Map())); } catch (InsufficientPermissionException) { return(Unauthorized()); } }
public IActionResult CreateTeam(TeamModelIn team) { if (!ModelState.IsValid) { return(BadRequest()); } try { CreateSession(); return(TryToCreate(team.Map())); } catch (InsufficientPermissionException) { return(Unauthorized()); } }
private IActionResult TryAddTeam(TeamModelIn team) { string imgData = team.Photo; team.Photo = team.Name + "_" + team.SportName + IMG_EXTENSION; TeamDto dto = BuildTransferObject(team); TeamDto added = teamService.AddTeam(dto); //if team could be added without exception thrown, then save its image. images.SaveImage(team.Photo, imgData); TeamModelOut modelOut = BuildTeamModelOut(added); return(CreatedAtRoute("GetTeamById", new { id = added.id }, modelOut)); }
public void UnFollowTeamTest() { //Arrange. TeamModelIn input = GetTeamModelIn(); //Act. IActionResult result = controller.UnFollowTeam(3); OkObjectResult okResult = result as OkObjectResult; OkModelOut okModel = okResult.Value as OkModelOut; //Assert. service.Verify(us => us.UnFollowTeam(It.IsAny <string>(), It.IsAny <int>()), Times.Once); Assert.IsNotNull(result); Assert.IsNotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); Assert.IsNotNull(okModel); }
public void CreateFailedTeamRequiredFieldsTest() { //Arrange. TeamModelIn modelIn = new TeamModelIn() { Photo = "/MyResource/DreamTeam.png" }; //We need to force the error in de ModelState. controller.ModelState.AddModelError("", "Error"); //Act. IActionResult result = controller.Post(modelIn); BadRequestObjectResult badRequest = result as BadRequestObjectResult; //Assert. Assert.IsNotNull(badRequest); Assert.AreEqual(400, badRequest.StatusCode); }
public void CreateValidTeamTest() { //Arrange. TeamModelIn input = CreateTeamModelIn(); teamsService.Setup(r => r.AddTeam(It.IsAny <TeamDto>())).Returns(team); //Act. IActionResult result = controller.Post(input); CreatedAtRouteResult createdResult = result as CreatedAtRouteResult; TeamModelOut modelOut = createdResult.Value as TeamModelOut; //Assert teamsService.Verify(r => r.AddTeam(It.IsAny <TeamDto>()), Times.Once); Assert.IsNotNull(createdResult); Assert.AreEqual("GetTeamById", createdResult.RouteName); Assert.AreEqual(201, createdResult.StatusCode); Assert.AreEqual(input.Name, modelOut.Name); }
private IActionResult TryPut(int teamId, TeamModelIn team) { string imgData = team.Photo; team.Id = teamId; TeamDto dto = BuildTransferObject(team); dto.photo = team.Name + "_" + team.SportName + IMG_EXTENSION; TeamDto modified = teamService.Modify(dto); //if team could be added without exception thrown, then save its image. images.SaveImage(team.Photo, imgData); TeamModelOut output = BuildTeamModelOut(modified); return(Ok(output)); }
public void PutTest() { //Arrange. TeamModelIn input = CreateTeamModelIn(); teamsService.Setup(r => r.Modify(It.IsAny <TeamDto>())).Returns(team); //Act. IActionResult result = controller.Put(2, input); OkObjectResult okResult = result as OkObjectResult; TeamModelOut modified = okResult.Value as TeamModelOut; //Assert. teamsService.Verify(r => r.Modify(It.IsAny <TeamDto>()), Times.Once); teamsService.Verify(r => r.AddTeam(It.IsAny <TeamDto>()), Times.Never); Assert.IsNotNull(result); Assert.IsNotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); }
public void CreateNoDataAccessTest() { //Arrange. Exception toThrow = new DataInaccessibleException(); teamsService.Setup(tr => tr.AddTeam(It.IsAny <TeamDto>())).Throws(new ServiceException(toThrow.Message, ErrorType.DATA_INACCESSIBLE)); TeamModelIn input = CreateTeamModelIn(); //Act. IActionResult result = controller.Post(input); ObjectResult noData = result as ObjectResult; ErrorModelOut error = noData.Value as ErrorModelOut; //Assert. Assert.IsNotNull(result); Assert.IsNotNull(noData); Assert.AreEqual(500, noData.StatusCode); Assert.IsNotNull(error); Assert.AreEqual(toThrow.Message, error.ErrorMessage); }
public void PutWrongFormatTest() { //Arrange. TeamModelIn modelIn = new TeamModelIn() { Photo = "/MyResource/DreamTeam.png" }; //We need to force the error in de ModelState. controller.ModelState.AddModelError("", "Error"); //Act. IActionResult result = controller.Put(2, modelIn); BadRequestObjectResult createdResult = result as BadRequestObjectResult; //Assert. Assert.IsNotNull(result); Assert.IsNotNull(createdResult); Assert.AreEqual(400, createdResult.StatusCode); }
public void CreateAlreadyExistingTeam() { //Arrange. Exception toThrow = new TeamAlreadyExistsException(); teamsService.Setup(tr => tr.AddTeam(It.IsAny <TeamDto>())).Throws(new ServiceException(toThrow.Message, ErrorType.ENTITY_ALREADY_EXISTS)); TeamModelIn input = CreateTeamModelIn(); //Act. IActionResult result = controller.Post(input); BadRequestObjectResult badRequest = result as BadRequestObjectResult; ErrorModelOut error = badRequest.Value as ErrorModelOut; //Assert. Assert.IsNotNull(result); Assert.IsNotNull(badRequest); Assert.AreEqual(400, badRequest.StatusCode); Assert.IsNotNull(error); Assert.AreEqual(toThrow.Message, error.ErrorMessage); }
public void PutAddTest() { //Arrange. Exception internalEx = new TeamNotFoundException(); teamsService.Setup(r => r.Modify(It.IsAny <TeamDto>())).Throws(new ServiceException(internalEx.Message, ErrorType.ENTITY_NOT_FOUND)); teamsService.Setup(r => r.AddTeam(It.IsAny <TeamDto>())).Returns(team); TeamModelIn input = CreateTeamModelIn(); //Act. IActionResult result = controller.Put(2, input); CreatedAtRouteResult createdResult = result as CreatedAtRouteResult; TeamModelOut modelOut = createdResult.Value as TeamModelOut; //Assert. teamsService.Verify(r => r.Modify(It.IsAny <TeamDto>()), Times.Once); teamsService.Verify(r => r.AddTeam(It.IsAny <TeamDto>()), Times.Once); Assert.AreEqual("GetTeamById", createdResult.RouteName); Assert.AreEqual(201, createdResult.StatusCode); Assert.AreEqual(2, modelOut.Id); }
public void UnfollowNotFollowedTest() { //Arrange. TeamModelIn input = GetTeamModelIn(); Exception toThrow = new TeamNotFollowedException(); service.Setup(us => us.UnFollowTeam(It.IsAny <string>(), It.IsAny <int>())).Throws(toThrow); //Act. IActionResult result = controller.UnFollowTeam(3); NotFoundObjectResult notFound = result as NotFoundObjectResult; ErrorModelOut error = notFound.Value as ErrorModelOut; //Assert. service.Verify(us => us.UnFollowTeam(It.IsAny <string>(), It.IsAny <int>()), Times.Once); Assert.IsNotNull(result); Assert.IsNotNull(notFound); Assert.AreEqual(404, notFound.StatusCode); Assert.IsNotNull(error); Assert.AreEqual(error.ErrorMessage, toThrow.Message); }
public void UnfollowTeamNoDataAccessTest() { //Arrange. Exception internalEx = new DataInaccessibleException(); Exception toThrow = new ServiceException(internalEx.Message, ErrorType.DATA_INACCESSIBLE); service.Setup(us => us.UnFollowTeam(It.IsAny <string>(), It.IsAny <int>())).Throws(toThrow); TeamModelIn input = GetTeamModelIn(); //Act. IActionResult result = controller.UnFollowTeam(3); ObjectResult notData = result as ObjectResult; ErrorModelOut error = notData.Value as ErrorModelOut; //Assert. Assert.IsNotNull(result); Assert.IsNotNull(notData); Assert.AreEqual(500, notData.StatusCode); Assert.IsNotNull(error); Assert.AreEqual(toThrow.Message, error.ErrorMessage); }
public void CreateTeamOkTeamsController() { var teamServicesMock = new Mock <ITeamServices>(); var encounterServicesMock = new Mock <IEncounterSimpleServices>(); var encounterQueryServicesMock = new Mock <IEncounterQueryServices>(); TeamModelIn teamIn = new TeamModelIn() { Name = "Cavaliers", SportName = "Futbol" }; teamServicesMock.Setup(t => t.CreateTeam(teamIn.Map())).Returns(new TeamDTO() { Name = "Cavaliers", SportName = "Futbol" }); ILoginServices login = new LoginServicesMock(mariano); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Authorization"] = ""; var controllerContext = new ControllerContext() { HttpContext = httpContext, }; var controller = new TeamsController(login, teamServicesMock.Object, encounterServicesMock.Object, encounterQueryServicesMock.Object) { ControllerContext = controllerContext, }; var result = controller.CreateTeam(teamIn); teamServicesMock.Verify(t => t.CreateTeam(teamIn.Map()), Times.AtMostOnce); var createdResult = result as CreatedAtRouteResult; var teamOut = createdResult.Value as TeamDTO; Assert.IsNotNull(createdResult); Assert.AreEqual("GetTeam", createdResult.RouteName); Assert.AreEqual(201, createdResult.StatusCode); Assert.AreEqual(teamIn.Name, teamOut.Name); }
private IActionResult PutValidFormat(int teamId, TeamModelIn team) { IActionResult result; try { SetSession(); result = TryPut(teamId, team); } catch (ServiceException e) { if (e.Error.Equals(ErrorType.ENTITY_NOT_FOUND)) { result = Post(team); } else { result = errors.GenerateError(e); } } return(result); }
public void UpdateTeamDoesNotExistsTeamsController() { var teamServicesMock = new Mock <ITeamServices>(); var encounterServicesMock = new Mock <IEncounterSimpleServices>(); var encounterQueryServicesMock = new Mock <IEncounterQueryServices>(); TeamModelIn team1 = new TeamModelIn() { Name = "Team1", SportName = "Futbol" }; string teamId = "Team1_Futbol"; teamServicesMock.Setup(t => t.UpdateTeam(It.IsAny <TeamDTO>())).Throws(new ServicesException()); ILoginServices login = new LoginServicesMock(mariano); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Authorization"] = ""; var controllerContext = new ControllerContext() { HttpContext = httpContext, }; var controller = new TeamsController(login, teamServicesMock.Object, encounterServicesMock.Object, encounterQueryServicesMock.Object) { ControllerContext = controllerContext }; var result = controller.ModifyTeam(teamId, team1); teamServicesMock.Verify(t => t.UpdateTeam(It.IsAny <TeamDTO>()), Times.AtMostOnce); var resultRequest = result as BadRequestObjectResult; Assert.IsNotNull(resultRequest); Assert.AreEqual(400, resultRequest.StatusCode); }