コード例 #1
0
        public Cliente CriarCliente(CriarClienteRequest request)
        {
            Cliente cliente = new Cliente(request.Nome);

            _clienteRepositorio.Salvar(cliente);
            _unitOfWork.SaveChanges();
            return(cliente);
        }
コード例 #2
0
        public async void Deve_Criar_Cliente()
        {
            var nomeEsperado    = "Cliente 1";
            var clienteEsperado = new
            {
                Id    = 1,
                IsNew = false,
                Nome  = nomeEsperado,
            }.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();

            CriarClienteRequest request = new CriarClienteRequest()
            {
                Nome = nomeEsperado
            };

            var json    = JsonConvert.SerializeObject(request);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/clientes", content);

            response.EnsureSuccessStatusCode();
            var stringRequest = await response.Content.ReadAsStringAsync();

            RequestResponse <Cliente> clienteResponse = JsonConvert.DeserializeObject <RequestResponse <Cliente> >(stringRequest);

            Assert.Empty(clienteResponse.Erros);
            clienteEsperado.ShouldMatch(clienteResponse.Dado);
        }