public async Task <IActionResult> EditContact([FromRoute] int id, [FromBody] ContactEditRequestDto contactRequest) { var fileValid = string.IsNullOrEmpty(contactRequest.ProfileImageFileName) || ValidFile(contactRequest.ProfileImageFileName); var addressValid = ValidAddress(contactRequest.Address); if (!ModelState.IsValid || !fileValid || !addressValid) { return(BadRequest(ModelState)); } var contact = _mapper.Map <Contact>(contactRequest); contact.ContactId = id; var editResult = _databaseProvider.EditContact(contact); await _databaseProvider.Save(); if (editResult == (int)EditResults.ItemNotFound) { return(NotFound("Register not found")); } if (editResult == (int)EditResults.WrongEntityRelation) { ModelState.AddModelError("Entity Relation Error", "The address provided does not correspond with the contact provided"); return(BadRequest(ModelState)); } return(Ok(_mapper.Map <ContactSingleResponseDto>(contact))); }
public async void TestEditContactBadRequest() { var _provider = InitializeDatabaseProvider(); var addressDto = new AddressEditDto() { AddressId = 1, StreetInformation = "TestStreetEdited", CityId = 1, StateId = 1, }; var contactDto = new ContactEditRequestDto() { Name = "TestEntityEdited", Company = "TestCompany", Email = "TestingEmail", BirthDate = DateTime.Now, Address = addressDto, PersonalPhoneNumber = "1111" }; var _configuration = new Mock <IConfiguration>(); var controller = new ContactsController(_configuration.Object, _provider, InitializeMapper()); var result = await controller.EditContact(1, contactDto); var badRequestResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal(400, badRequestResult.StatusCode); }
public async void TestEditContactNotFound() { var _provider = InitializeDatabaseProvider(); var state = new State() { Name = "TestingState", StateId = 1 }; var city = new City() { Name = "TestingCity", StateId = 1, CityId = 1 }; var address = new Address() { StreetInformation = "TestStreet", CityId = 1, StateId = 1, AddressId = 1 }; var contact = new Contact() { ContactId = 1, Name = "TestEntity", Company = "TestCompany", Email = "TestingEmail", BirthDate = DateTime.Now, AddressId = 1, PersonalPhoneNumber = "1111", Address = address }; _provider.AddState(state); _provider.AddCity(city); _provider.CreateContact(contact); await _provider.Save(); _provider.DetachEntity <Address>(address); _provider.DetachEntity <Contact>(contact); var addressDto = new AddressEditDto() { AddressId = 1, StreetInformation = "TestStreetEdited", CityId = 1, StateId = 1, }; var contactDto = new ContactEditRequestDto() { Name = "TestEntityEdited", Company = "TestCompany", Email = "TestingEmail", BirthDate = DateTime.Now, Address = addressDto, PersonalPhoneNumber = "1111" }; var _configuration = new Mock <IConfiguration>(); var controller = new ContactsController(_configuration.Object, _provider, InitializeMapper()); var result = await controller.EditContact(2, contactDto); var NotFoundResult = Assert.IsType <NotFoundObjectResult>(result); Assert.Equal(404, NotFoundResult.StatusCode); }