Esempio n. 1
0
        public async Task It_Is_Possible_To_Invoke_The_Controller_Create()
        {
            var serviceMock = new Mock <ICityService>();

            serviceMock.Setup(s => s.Post(It.IsAny <CityDtoCreate>())).ReturnsAsync(
                new CityDtoCreateResult
            {
                Id        = Guid.NewGuid(),
                Name      = "Passo Fundo",
                CreatedAt = DateTime.Now
            });

            _controller = new CitiesController(serviceMock.Object);
            Mock <IUrlHelper> url = new Mock <IUrlHelper>();

            url.Setup(s => s.Link(It.IsAny <string>(), It.IsAny <object>())).Returns("http://localhost:5000");
            _controller.Url = url.Object;

            var cityDtoCreate = new CityDtoCreate
            {
                Name = "Passo Fundo"
            };

            var result = await _controller.Post(cityDtoCreate);

            Assert.True(result is CreatedResult);

            var resultValue = ((CreatedResult)result).Value as CityDtoCreateResult;

            Assert.NotNull(resultValue);
            Assert.Equal(cityDtoCreate.Name, resultValue.Name);
        }
Esempio n. 2
0
        public async Task It_Is_Possible_To_Invoke_The_Controller_Create()
        {
            var serviceMock = new Mock <ICityService>();

            serviceMock.Setup(s => s.Post(It.IsAny <CityDtoCreate>())).ReturnsAsync(
                new CityDtoCreateResult
            {
                Id        = Guid.NewGuid(),
                Name      = "Passo Fundo",
                CreatedAt = DateTime.Now
            });

            _controller = new CitiesController(serviceMock.Object);
            _controller.ModelState.AddModelError("Name", "Nome é obrigatório.");

            Mock <IUrlHelper> url = new Mock <IUrlHelper>();

            url.Setup(s => s.Link(It.IsAny <string>(), It.IsAny <object>())).Returns("http://localhost:5000");
            _controller.Url = url.Object;

            var cityDtoCreate = new CityDtoCreate
            {
                Name     = "Passo Fundo",
                IBGECode = 1
            };

            var result = await _controller.Post(cityDtoCreate);

            Assert.True(result is BadRequestObjectResult);
        }
Esempio n. 3
0
        public async Task <ActionResult> Post([FromBody] CityDtoCreate city)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _service.Post(city);

                if (result != null)
                {
                    return(Created(new Uri(Url.Link("GetCityWithId", new { id = result.Id })), result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (ArgumentException e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
Esempio n. 4
0
        public async Task <CityDtoCreateResult> Post(CityDtoCreate city)
        {
            var model  = _mapper.Map <CityModel>(city);
            var entity = _mapper.Map <CityEntity>(model);
            var result = await _repository.InsertAsync(entity);

            return(_mapper.Map <CityDtoCreateResult>(result));
        }
Esempio n. 5
0
        public async Task It_Is_Possible_To_Run_City_Crud()
        {
            await AddToken();

            var cityDtoCreate = new CityDtoCreate
            {
                Name     = "Passo Fundo",
                IBGECode = 4314100,
                StateId  = new Guid("88970a32-3a2a-4a95-8a18-2087b65f59d1")
            };

            // Post
            var response = await PostJsonAsync(cityDtoCreate, $"{HostApi}/cities", Client);

            var responseString = await response.Content.ReadAsStringAsync();

            var cityDtoCreateResult = JsonConvert.DeserializeObject <CityDtoCreateResult>(responseString);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal("Passo Fundo", cityDtoCreateResult.Name);
            Assert.Equal(4314100, cityDtoCreateResult.IBGECode);
            Assert.False(cityDtoCreateResult.Id == default);

            // Get All
            response = await Client.GetAsync($"{HostApi}/cities");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            var cityDtos = JsonConvert.DeserializeObject <IEnumerable <CityDto> >(responseString);

            Assert.NotNull(cityDtos);
            Assert.True(cityDtos.Count() > 0);
            Assert.True(cityDtos.Where(x => x.Id == cityDtoCreateResult.Id).Count() == 1);

            // Put
            var cityDtoUpdate = new CityDtoUpdate
            {
                Id       = cityDtoCreateResult.Id,
                Name     = "Paraí",
                IBGECode = 4314001,
                StateId  = new Guid("88970a32-3a2a-4a95-8a18-2087b65f59d1")
            };
            var content = new StringContent(JsonConvert.SerializeObject(cityDtoUpdate), Encoding.UTF8, "application/json");

            response = await Client.PutAsync($"{HostApi}/cities", content);

            responseString = await response.Content.ReadAsStringAsync();

            var cityDtoUpdateResult = JsonConvert.DeserializeObject <CityDtoUpdateResult>(responseString);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(cityDtoCreateResult.Id, cityDtoUpdateResult.Id);
            Assert.NotEqual(cityDtoCreateResult.Name, cityDtoUpdateResult.Name);
            Assert.NotEqual(cityDtoCreateResult.IBGECode, cityDtoUpdateResult.IBGECode);
            Assert.Equal(cityDtoUpdate.Id, cityDtoUpdateResult.Id);
            Assert.Equal(cityDtoUpdate.Name, cityDtoUpdateResult.Name);
            Assert.Equal(cityDtoUpdate.IBGECode, cityDtoUpdateResult.IBGECode);

            // Get
            response = await Client.GetAsync($"{HostApi}/cities/{cityDtoUpdateResult.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            var cityDto = JsonConvert.DeserializeObject <CityDto>(responseString);

            Assert.NotNull(cityDto);
            Assert.Equal(cityDtoUpdateResult.Name, cityDto.Name);
            Assert.Equal(cityDtoUpdateResult.IBGECode, cityDto.IBGECode);

            // GetCompleteById
            response = await Client.GetAsync($"{HostApi}/cities/completeById/{cityDtoUpdateResult.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            var cityDtoComplete = JsonConvert.DeserializeObject <CityDtoComplete>(responseString);

            Assert.NotNull(cityDtoComplete);
            Assert.Equal(cityDtoUpdateResult.Name, cityDtoComplete.Name);
            Assert.Equal(cityDtoUpdateResult.IBGECode, cityDtoComplete.IBGECode);
            Assert.NotNull(cityDtoComplete.State);
            Assert.Equal("Rio Grande do Sul", cityDtoComplete.State.Name);
            Assert.Equal("RS", cityDtoComplete.State.ShortName);

            // GetCompleteByIBGECode
            response = await Client.GetAsync($"{HostApi}/cities/completeByIBGECode/{cityDtoUpdateResult.IBGECode}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            cityDtoComplete = JsonConvert.DeserializeObject <CityDtoComplete>(responseString);
            Assert.NotNull(cityDtoComplete);
            Assert.Equal(cityDtoUpdateResult.Name, cityDtoComplete.Name);
            Assert.Equal(cityDtoUpdateResult.IBGECode, cityDtoComplete.IBGECode);
            Assert.NotNull(cityDtoComplete.State);
            Assert.Equal("Rio Grande do Sul", cityDtoComplete.State.Name);
            Assert.Equal("RS", cityDtoComplete.State.ShortName);

            // Delete
            response = await Client.DeleteAsync($"{HostApi}/cities/{cityDto.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            // Get after Delete
            response = await Client.GetAsync($"{HostApi}/cities/{cityDto.Id}");

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
Esempio n. 6
0
        public async Task It_Is_Possible_To_Run_Address_Crud()
        {
            await AddToken();

            var cityDtoCreate = new CityDtoCreate
            {
                Name     = "Passo Fundo",
                IBGECode = 4314100,
                StateId  = new Guid("88970a32-3a2a-4a95-8a18-2087b65f59d1")
            };

            // Post City
            var response = await PostJsonAsync(cityDtoCreate, $"{HostApi}/cities", Client);

            var responseString = await response.Content.ReadAsStringAsync();

            var cityDtoCreateResult = JsonConvert.DeserializeObject <CityDtoCreateResult>(responseString);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal("Passo Fundo", cityDtoCreateResult.Name);
            Assert.Equal(4314100, cityDtoCreateResult.IBGECode);
            Assert.False(cityDtoCreateResult.Id == default);

            var addressDtoCreate = new AddressDtoCreate
            {
                Street  = "Rua Morom",
                ZipCode = "99.010-030",
                Number  = "930",
                CityId  = cityDtoCreateResult.Id
            };

            // Post
            response = await PostJsonAsync(addressDtoCreate, $"{HostApi}/addresses", Client);

            responseString = await response.Content.ReadAsStringAsync();

            var addressDtoCreateResult = JsonConvert.DeserializeObject <AddressDtoCreateResult>(responseString);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal("Rua Morom", addressDtoCreateResult.Street);
            Assert.Equal("99.010-030", addressDtoCreateResult.ZipCode);
            Assert.Equal("930", addressDtoCreateResult.Number);
            Assert.False(addressDtoCreateResult.Id == default);

            // Put
            var addressDtoUpdate = new AddressDtoUpdate
            {
                Id      = addressDtoCreateResult.Id,
                Street  = "Rua Dez de Abril",
                ZipCode = "99.010-210",
                Number  = "403",
                CityId  = cityDtoCreateResult.Id
            };
            var content = new StringContent(JsonConvert.SerializeObject(addressDtoUpdate), Encoding.UTF8, "application/json");

            response = await Client.PutAsync($"{HostApi}/addresses", content);

            responseString = await response.Content.ReadAsStringAsync();

            var addressDtoUpdateResult = JsonConvert.DeserializeObject <AddressDtoUpdateResult>(responseString);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(addressDtoCreateResult.Id, addressDtoUpdateResult.Id);
            Assert.NotEqual(addressDtoCreateResult.Street, addressDtoUpdateResult.Street);
            Assert.NotEqual(addressDtoCreateResult.ZipCode, addressDtoUpdateResult.ZipCode);
            Assert.NotEqual(addressDtoCreateResult.Number, addressDtoUpdateResult.Number);
            Assert.Equal(addressDtoUpdate.Id, addressDtoUpdateResult.Id);
            Assert.Equal(addressDtoUpdate.Street, addressDtoUpdateResult.Street);
            Assert.Equal(addressDtoUpdate.ZipCode, addressDtoUpdateResult.ZipCode);
            Assert.Equal(addressDtoUpdate.Number, addressDtoUpdateResult.Number);

            // Get
            response = await Client.GetAsync($"{HostApi}/addresses/{addressDtoUpdateResult.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            var addressDto = JsonConvert.DeserializeObject <AddressDto>(responseString);

            Assert.NotNull(addressDto);
            Assert.Equal(addressDtoUpdateResult.Street, addressDto.Street);
            Assert.Equal(addressDtoUpdateResult.ZipCode, addressDto.ZipCode);
            Assert.Equal(addressDtoUpdateResult.Number, addressDto.Number);

            // GetByZipCode
            response = await Client.GetAsync($"{HostApi}/addresses/byZipCode/{addressDtoUpdateResult.ZipCode}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            responseString = await response.Content.ReadAsStringAsync();

            addressDto = JsonConvert.DeserializeObject <AddressDto>(responseString);
            Assert.NotNull(addressDto);
            Assert.Equal(addressDtoUpdateResult.Street, addressDto.Street);
            Assert.Equal(addressDtoUpdateResult.ZipCode, addressDto.ZipCode);
            Assert.Equal(addressDtoUpdateResult.Number, addressDto.Number);

            // Delete
            response = await Client.DeleteAsync($"{HostApi}/addresses/{addressDto.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            // Get after Delete
            response = await Client.GetAsync($"{HostApi}/addresses/{addressDto.Id}");

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
Esempio n. 7
0
        public CityTests()
        {
            CityId              = Guid.NewGuid();
            CityName            = Faker.Address.StreetName();
            CityIBGECode        = Faker.RandomNumber.Next(1, 10000);
            CityNameUpdated     = Faker.Address.StreetName();
            CityIBGECodeUpdated = Faker.RandomNumber.Next(1, 10000);
            StateId             = Guid.NewGuid();

            for (int i = 0; i < 10; i++)
            {
                cityDtos.Add(new CityDto
                {
                    Id       = Guid.NewGuid(),
                    Name     = Faker.Name.FullName(),
                    IBGECode = Faker.RandomNumber.Next(1, 10000),
                    StateId  = Guid.NewGuid()
                });
            }

            cityDto = new CityDto
            {
                Id       = CityId,
                Name     = CityName,
                IBGECode = CityIBGECode,
                StateId  = StateId
            };

            cityDtoComplete = new CityDtoComplete
            {
                Id       = CityId,
                Name     = CityName,
                IBGECode = CityIBGECode,
                StateId  = StateId,
                State    = new StateDto
                {
                    Id        = Guid.NewGuid(),
                    Name      = Faker.Address.UsState(),
                    ShortName = Faker.Address.UsStateAbbr()
                }
            };

            cityDtoCreate = new CityDtoCreate
            {
                Name     = CityName,
                IBGECode = CityIBGECode,
                StateId  = StateId
            };

            cityDtoCreateResult = new CityDtoCreateResult
            {
                Id        = CityId,
                Name      = CityName,
                IBGECode  = CityIBGECode,
                StateId   = StateId,
                CreatedAt = DateTime.Now
            };

            cityDtoUpdate = new CityDtoUpdate
            {
                Id       = CityId,
                Name     = CityNameUpdated,
                IBGECode = CityIBGECodeUpdated,
                StateId  = StateId
            };

            cityDtoUpdateResult = new CityDtoUpdateResult
            {
                Id        = CityId,
                Name      = CityNameUpdated,
                IBGECode  = CityIBGECodeUpdated,
                StateId   = StateId,
                UpdatedAt = DateTime.UtcNow
            };
        }