Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }