public IActionResult CreateReferenceStateProvince(ReferenceStateProvinceDto payload) { var referenceStateProvince = _mapper.Map <ReferenceStateProvinceDto, ReferenceStateProvince>(payload); var referenceStateProvinceInDb = _unitOfWork.ReferenceStateProvinces.Find(p => p.Code == payload.Code); if (referenceStateProvinceInDb.Any()) { return(new ConflictResult()); } var referenceCountry = _unitOfWork.ReferenceCountries.SingleOrDefault(c => c.Code == payload.CountryCode); referenceStateProvince.CountryId = referenceCountry.Id; _unitOfWork.ReferenceStateProvinces.Add(referenceStateProvince); _unitOfWork.Complete(); payload.Id = referenceStateProvince.Id; return(CreatedAtAction(nameof(GetReferenceStateProvince), new { id = payload.Id }, payload)); }
public IActionResult UpdateReferenceStateProvince(int id, ReferenceStateProvinceDto payload) { var referenceStateProvinceInDb = _unitOfWork.ReferenceStateProvinces.Get(id); if (referenceStateProvinceInDb == null) { return(NotFound()); } _mapper.Map(payload, referenceStateProvinceInDb); var referenceCountry = _unitOfWork.ReferenceCountries.SingleOrDefault(c => c.Code == payload.CountryCode); referenceStateProvinceInDb.CountryId = referenceCountry.Id; _unitOfWork.Complete(); return(NoContent()); }
public async Task Update_MalformedPayload_HttpBadRequest() { // Arrange var randomStateProvinceId = PreDefinedData.GetRandomStateProvinceId(); var path = GetRelativePath(nameof(ReferenceStateProvincesController), randomStateProvinceId.ToString()); var apiUpdatingStateProvince = new ReferenceStateProvinceDto { Id = randomStateProvinceId // Code is required, keep it missing }; // Act var response = await Client.PutAsync(path, new StringContent( JsonConvert.SerializeObject(apiUpdatingStateProvince), Encoding.UTF8, JsonMediaType)); // Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); }
public async Task Create_MalformedPayload_HttpBadRequest() { // Arrange var path = GetRelativePath(nameof(ReferenceStateProvincesController)); var newStateProvinceDto = new ReferenceStateProvinceDto { // Code is required, keep it missing CreatedDate = DateTime.UtcNow }; // Act var response = await Client.PostAsync(path, new StringContent( JsonConvert.SerializeObject(newStateProvinceDto), Encoding.UTF8, JsonMediaType)); // Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); }
public async Task Update_InvalidStateProvince_HttpNotFound() { // Arrange var notExistsStateProvinceCode = PreDefinedData.GetNotExistsStateProvinceCode(); var path = GetRelativePath(nameof(ReferenceStateProvincesController), int.MaxValue.ToString()); var apiUpdatingStateProvince = new ReferenceStateProvinceDto { Id = int.MaxValue, CountryCode = "US", Code = notExistsStateProvinceCode, LongName = "Update Test" }; // Act var response = await Client.PutAsync(path, new StringContent( JsonConvert.SerializeObject(apiUpdatingStateProvince), Encoding.UTF8, JsonMediaType)); // Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); }
public async Task Create_ValidPayload_HttpCreatedAndReturnsNewStateProvince() { // Arrange var path = GetRelativePath(nameof(ReferenceStateProvincesController)); var notExistsStateProvinceCode = PreDefinedData.GetNotExistsStateProvinceCode(); var newStateProvinceDto = new ReferenceStateProvinceDto { CountryCode = "US", Code = notExistsStateProvinceCode, LongName = "New StateProvince", CreatedDate = DateTime.UtcNow, CreatedBy = CreatedModifiedBy, ModifiedDate = DateTime.UtcNow, ModifiedBy = CreatedModifiedBy }; // Act var response = await Client.PostAsync(path, new StringContent( JsonConvert.SerializeObject(newStateProvinceDto), Encoding.UTF8, JsonMediaType)); var responseString = await response.Content.ReadAsStringAsync(); // Assert Assert.DoesNotThrow( () => response.EnsureSuccessStatusCode(), string.Format(HttpExceptionFormattedMessage, responseString)); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created)); var apiReturnedObject = JsonConvert.DeserializeObject <ReferenceStateProvinceDto>(responseString); Assert.That(apiReturnedObject.Id, Is.GreaterThan(0)); newStateProvinceDto.Id = apiReturnedObject.Id; AssertHelper.AreObjectsEqual(apiReturnedObject, newStateProvinceDto); }
public async Task Create_ExistingStateProvince_HttpConflict() { // Arrange var path = GetRelativePath(nameof(ReferenceStateProvincesController)); var randomStateProvinceId = PreDefinedData.GetRandomStateProvinceId(); var randomStateProvince = PreDefinedData.ReferenceStateProvinces[randomStateProvinceId - 1]; var newStateProvinceDto = new ReferenceStateProvinceDto { CountryCode = "US", Code = randomStateProvince.Code, LongName = "Create Test", CreatedDate = DateTime.UtcNow }; // Act var response = await Client.PostAsync(path, new StringContent( JsonConvert.SerializeObject(newStateProvinceDto), Encoding.UTF8, JsonMediaType)); // Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Conflict)); }