public async Task Put_logs_exception() { //Arrange var Aquarium = new Aquarium(); var model = new AquariumModel(); mockMapper.Setup(am => am.Map(It.IsAny <AquariumModel>(), It.IsAny <Aquarium>())).Verifiable(); var existingAquarium = new Aquarium(); mockAquariumRepository.Setup(ur => ur.Get(1, 1)).ReturnsAsync(existingAquarium).Verifiable(); mockAquariumRepository.Setup(ur => ur.Update(It.IsAny <Aquarium>())).Throws(new Exception()).Verifiable(); mockLogger.Setup(l => l.Error(It.IsAny <Exception>(), It.IsAny <string>())).Verifiable(); SetupController(); //Act var result = await controller.Put(1, model); //Assert Assert.Equal(typeof(BadRequestObjectResult), result.GetType()); var badRequestObjectResult = (BadRequestObjectResult)result; Assert.Equal(400, badRequestObjectResult.StatusCode); Assert.Equal("Could not update Aquarium", badRequestObjectResult.Value.ToString()); mockAquariumRepository.Verify(r => r.Get(1, 1), Times.Once); mockAquariumRepository.Verify(r => r.Update(It.IsAny <Aquarium>()), Times.Once); mockMapper.Verify(m => m.Map(It.IsAny <AquariumModel>(), It.IsAny <Aquarium>()), Times.Once); mockLogger.Verify(l => l.Error(It.IsAny <Exception>(), It.IsAny <string>()), Times.Once); }
public async Task Put_returns_ok() { //Arrange var aquarium = new Aquarium { RowVersion = Encoding.ASCII.GetBytes("RowVersion") }; var model = new AquariumModel(); mockMapper.Setup(am => am.Map(It.IsAny <AquariumModel>(), It.IsAny <Aquarium>())).Verifiable(); mockMapper.Setup(am => am.Map <AquariumModel>(It.IsAny <Aquarium>())).Returns(model); mockAquariumRepository.Setup(ur => ur.Get(1, 1)).ReturnsAsync(aquarium).Verifiable(); SetupController(); //Act var result = await controller.Put(1, model); //Assert Assert.Equal(typeof(OkObjectResult), result.GetType()); var okObjectResult = (OkObjectResult)result; Assert.Equal(200, okObjectResult.StatusCode); mockAquariumRepository.Verify(r => r.Get(1, 1), Times.Once); mockAquariumRepository.Verify(r => r.Update(It.IsAny <Aquarium>()), Times.Once); mockMapper.Verify(m => m.Map(It.IsAny <AquariumModel>(), It.IsAny <Aquarium>()), Times.Once); }
public async Task Post_returns_UnprocessableEntity() { //Arrange SetupController(); AquariumModel model = null; //Act var result = await controller.Post(model); //Assert Assert.Equal(typeof(StatusCodeResult), result.GetType()); var statusCodeResult = (StatusCodeResult)result; Assert.Equal(422, statusCodeResult.StatusCode); }
public async Task Put_returns_not_found() { //Arrange var model = new AquariumModel(); SetupController(); //Act var result = await controller.Put(2, model); //Assert Assert.Equal(typeof(NotFoundResult), result.GetType()); var notFoundResult = (NotFoundResult)result; Assert.Equal(404, notFoundResult.StatusCode); }
public async Task Get_returns_AquariumModel() { //Arrange var model = new AquariumModel { Name = "Bedroom", Url = "https://aquamonitor.com/api/Aquariums/1" }; var Aquarium = new Aquarium { Id = 1, Name = "Bedroom", RowVersion = Encoding.ASCII.GetBytes("RowVersion") }; mockAquariumRepository.Setup(r => r.Get(1, 1)).ReturnsAsync(Aquarium).Verifiable(); mockMapper.Setup(am => am.Map <AquariumModel>(Aquarium)).Returns(model).Verifiable(); SetupController(); //Act var result = await controller.Get(1); //Assert Assert.Equal(typeof(OkObjectResult), result.GetType()); var okResult = (OkObjectResult)result; Assert.Equal(200, okResult.StatusCode); Assert.Equal(typeof(AquariumModel), okResult.Value.GetType()); var AquariumModel = (AquariumModel)okResult.Value; Assert.Equal("Bedroom", AquariumModel.Name); Assert.Equal("https://aquamonitor.com/api/Aquariums/1", AquariumModel.Url); mockAquariumRepository.Verify(r => r.Get(1, 1), Times.Once); mockMapper.Verify(m => m.Map <AquariumModel>(It.IsAny <Aquarium>()), Times.Once); }
public async Task Post_returns_created() { //Arrange var Aquarium = new Aquarium { RowVersion = Encoding.ASCII.GetBytes("RowVersion") }; var model = new AquariumModel { Url = "http://aqauamonitor.com/api/aquariums/2" }; mockMapper.Setup(am => am.Map <Aquarium>(It.IsAny <AquariumModel>())).Returns(Aquarium); mockMapper.Setup(am => am.Map <AquariumModel>(It.IsAny <Aquarium>())).Returns(model); mockUrlHelper .Setup(m => m.Link(It.IsAny <string>(), It.IsAny <object>())) .Returns("http://aqauamonitor.com/api/aquariums/1") .Verifiable(); SetupController(); //Act var result = await controller.Post(null); //Assert Assert.Equal(typeof(CreatedResult), result.GetType()); var createdResult = (CreatedResult)result; Assert.Equal(201, createdResult.StatusCode); Assert.Equal("http://aqauamonitor.com/api/aquariums/1", createdResult.Location); var AquariumModel = (AquariumModel)createdResult.Value; Assert.Equal("http://aqauamonitor.com/api/aquariums/2", AquariumModel.Url); }
public async Task <IActionResult> Put(int aquariumId, [FromBody] AquariumModel model) { try { var aquarium = await _repository.Get(UserId, aquariumId); if (aquarium == null) { return(NotFound()); } if (Request.Headers.ContainsKey(HeaderNames.IfMatch)) { var etag = Request.Headers[HeaderNames.IfMatch].First(); if (etag != Convert.ToBase64String(aquarium.RowVersion)) { return(StatusCode((int)HttpStatusCode.PreconditionFailed)); } } _mapper.Map(model, aquarium); await LookupTypeAndUnits(aquarium); _logger.Information($"Updating aquarium. AquariumID:{aquariumId}"); await _repository.Update(aquarium); AddETag(aquarium.RowVersion); return(Ok(_mapper.Map <AquariumModel>(aquarium))); } catch (Exception ex) { _logger.Error(ex, "An error occured whilst trying to update Aquarium"); } return(BadRequest("Could not update Aquarium")); }
public async Task <IActionResult> Post([FromBody] AquariumModel model) { try { var aquarium = _mapper.Map <Aquarium>(model); if (aquarium == null) { return(UnprocessableEntity()); } // Use the URL User Id if (aquarium.User == null) { aquarium.User = new User(); } aquarium.User.Id = UserId; await LookupTypeAndUnits(aquarium); _logger.Information("Creating new aquarium..."); await _repository.Add(aquarium); _logger.Information($"New aquarium created. AquariumID:{aquarium.Id}."); AddETag(aquarium.RowVersion); var url = Url.Link("AquariumGet", new { UserId, aquariumId = aquarium.Id }); return(Created(url, _mapper.Map <AquariumModel>(aquarium))); } catch (Exception ex) { _logger.Error(ex, "An error occured whilst trying to create Aquarium."); } return(BadRequest("Could not create Aquarium")); }
public AquariumModelTests() { item = new AquariumModel(); }
public AquariumApiController(AquariumModel kitchenModel) { this._aquariumModel = kitchenModel; }