public async Task <Servico> CriarServico(CriarServicoRequest request) { Servico servico = new Servico(request.Nome, request.Valor); _servicoRepositorio.Salvar(servico); await _unitOfWork.SaveChanges(); return(servico); }
public async void Deve_Criar_Servico() { var nomeEsperado = "Serviço 1"; var valorEsperado = 15; var servicoEsperado = new { Id = 4, IsNew = false, Nome = nomeEsperado, Valor = valorEsperado }.ToExpectedObject(); var server = new TestServer(new WebHostBuilder() .ConfigureServices(services => { services.AddDbContext <BarberShopContext>(options => { options.UseInMemoryDatabase("Test"); }); }) .UseStartup <Startup>()); var scope = server.Host.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <BarberShopContext>(); db.Database.EnsureCreated(); db.Set <Servico>().AddRange(ServicosMock.ObterServicosMock()); db.SaveChanges(); var client = server.CreateClient(); CriarServicoRequest request = new CriarServicoRequest() { Nome = nomeEsperado, Valor = valorEsperado }; var json = JsonConvert.SerializeObject(request); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/servicos", content); response.EnsureSuccessStatusCode(); var stringRequest = await response.Content.ReadAsStringAsync(); RequestResponse <Servico> servicoResponse = JsonConvert.DeserializeObject <RequestResponse <Servico> >(stringRequest); Assert.Empty(servicoResponse.Erros); servicoEsperado.ShouldMatch(servicoResponse.Dado); }