public void Valor_pedido_valido_com_uma_pizza_e_dois_sabores() { //Arrange var order = new Order(); var pizza = new Pizza(); var flavor1 = new Flavor { Name = "Calabresa", Value = 42.5M }; var flavor2 = new Flavor { Name = "Pepperoni", Value = 55 }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; pizza.PizzaFlavors.Add(pizzaFlavor1); pizza.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza); //Act order.CalculateOrder(); //Assert order.TotalValue.Should().Be(48.75M); order.Pizzas.FirstOrDefault()?.Value.Should().Be(48.75M); }
public void DeleteCustomerByIdShouldCauseCustomerToBeNotContainedByDbSet() { // Arrange var mockFlavor = Builder <PizzaFlavor> .CreateNew().Build(); var initialList = new PizzaFlavor[] { mockFlavor }; var mockDbSet = new MockDbSet <PizzaFlavor>(initialList); var mockContext = new Mock <IContext>(); mockContext.SetupProperty <IDbSet <PizzaFlavor> >(_ => _.PizzaFlavors) .SetupGet(_ => _.PizzaFlavors) .Returns(mockDbSet); mockContext.Setup(_ => _.Save()) .Callback(mockDbSet.Save); Context = mockContext.Object; Repository = new PizzaFlavorRepository(Context); // Act Repository.DeleteFlavorById(mockFlavor.Id); // Assert var contains = mockDbSet.Contains(mockFlavor); Assert.IsFalse(contains); }
public void Pedido_invalido_sem_cadastro_e_sem_informacoes_do_endereco_solicitante() { //Arrange var order = new Order { Customer = new Customer { Address = new Address() } }; var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeFalse(); resultValidation.Errors.Count.Should().Be(4); }
public void Valor_pedido_valido_com_duas_pizzas_e_um_sabor_cada() { //Arrange var order = new Order(); var pizza1 = new Pizza(); var flavor1 = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; pizza1.PizzaFlavors.Add(pizzaFlavor1); order.Pizzas.Add(pizza1); var pizza2 = new Pizza(); var flavor2 = new Flavor { Name = "Veggie", Value = 59.99M }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; pizza2.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza2); //Act order.CalculateOrder(); //Assert order.TotalValue.Should().Be(102.49M); order.Pizzas.FirstOrDefault()?.Value.Should().Be(flavor1.Value); order.Pizzas.LastOrDefault()?.Value.Should().Be(flavor2.Value); }
public void Pedido_valido_com_dez_pizzas() { //Arrange var order = new Order { CustomerId = 1 }; for (var i = 0; i < 10; i++) { var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); } //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeTrue(); resultValidation.Errors.Count.Should().Be(0); }
public void Pedido_invalido_sem_cadastro_e_sem_endereco_solicitante() { //Arrange var order = new Order { Customer = new Customer() }; var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeFalse(); resultValidation.Errors.Count.Should().Be(1); resultValidation.Errors.FirstOrDefault().ErrorMessage.Should().Be("Deve ser informado o endereço de entrega."); }
public void Pedido_invalido_com_onze_pizzas() { //Arrange var order = new Order { CustomerId = 1 }; for (var i = 0; i < 11; i++) { var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); } //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeFalse(); resultValidation.Errors.Count.Should().Be(1); resultValidation.Errors.FirstOrDefault().ErrorMessage.Should().Be("O número máximo de pizzas por pedido é dez(10)."); }
public void Pedido_valido_com_duas_pizzas_e_um_sabor_cada() { //Arrange var order = new Order { CustomerId = 1 }; var pizza1 = new Pizza(); var flavor1 = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; pizza1.PizzaFlavors.Add(pizzaFlavor1); order.Pizzas.Add(pizza1); var pizza2 = new Pizza(); var flavor2 = new Flavor { Name = "Veggie", Value = 59.99M }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; pizza2.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza2); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeTrue(); resultValidation.Errors.Count.Should().Be(0); }
public void Pedido_valido_com_uma_pizza_e_dois_sabores() { //Arrange var order = new Order { CustomerId = 1 }; var pizza = new Pizza(); var flavor1 = new Flavor { Name = "Calabresa", Value = 42.5M }; var flavor2 = new Flavor { Name = "Pepperoni", Value = 55 }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; pizza.PizzaFlavors.Add(pizzaFlavor1); pizza.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeTrue(); resultValidation.Errors.Count.Should().Be(0); }
public Pizza(PizzaSize size, PizzaFlavor flavor, List <PizzaCustomization> customizations = null) { Size = size; Flavor = flavor; Customizations = customizations ?? new List <PizzaCustomization>(); CalculatePriceAndEstimatedTime(); }
private void ProcessFlavor(PizzaFlavor flavor) { switch (flavor) { case PizzaFlavor.CALABRESA: break; case PizzaFlavor.MARGUERITA: break; case PizzaFlavor.PORTUGUESA: EstimatedPreparationTime += 5; break; } }
public void Valor_pedido_valido_com_duas_pizzas_dois_sabores_cada() { //Arrange var order = new Order(); var pizza1 = new Pizza(); var flavor1 = new Flavor { Name = "3 Queijos", Value = 50M }; var flavor2 = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; pizza1.PizzaFlavors.Add(pizzaFlavor1); pizza1.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza1); var pizza2 = new Pizza(); var flavor3 = new Flavor { Name = "Veggie", Value = 59.99M }; var flavor4 = new Flavor { Name = "Pepperoni ", Value = 55M }; var pizzaFlavor3 = new PizzaFlavor { Flavor = flavor3 }; var pizzaFlavor4 = new PizzaFlavor { Flavor = flavor4 }; pizza2.PizzaFlavors.Add(pizzaFlavor3); pizza2.PizzaFlavors.Add(pizzaFlavor4); order.Pizzas.Add(pizza2); //Act order.CalculateOrder(); //Assert order.TotalValue.Should().Be(103.74M); order.Pizzas.FirstOrDefault()?.Value.Should().Be(46.25M); order.Pizzas.LastOrDefault()?.Value.Should().Be(57.49M); }
public void GetFlavorByIdShouldReturnSameFlavorIfExistsInDbSet() { // Arrange var mockFlavor = Builder <PizzaFlavor> .CreateNew().Build(); var initialList = new PizzaFlavor[] { mockFlavor }; var mockDbSet = new MockDbSet <PizzaFlavor>(initialList); var mockContext = new Mock <IContext>(); mockContext.SetupProperty <IDbSet <PizzaFlavor> >(_ => _.PizzaFlavors) .SetupGet(_ => _.PizzaFlavors) .Returns(mockDbSet); Context = mockContext.Object; Repository = new PizzaFlavorRepository(Context); // Act var result = Repository.GetFlavorById(mockFlavor.Id); // Assert Assert.AreEqual(mockFlavor, result); }
public void Pedido_invalido_com_uma_pizzas_e_tres_sabores() { //Arrange var order = new Order { CustomerId = 1 }; var pizza = new Pizza(); var flavor1 = new Flavor { Name = "Calabresa", Value = 42.5M }; var flavor2 = new Flavor { Name = "3 Queijos", Value = 50M }; var flavor3 = new Flavor { Name = "Veggie", Value = 59.99M }; var pizzaFlavor1 = new PizzaFlavor { Flavor = flavor1 }; var pizzaFlavor2 = new PizzaFlavor { Flavor = flavor2 }; var pizzaFlavor3 = new PizzaFlavor { Flavor = flavor3 }; pizza.PizzaFlavors.Add(pizzaFlavor1); pizza.PizzaFlavors.Add(pizzaFlavor2); pizza.PizzaFlavors.Add(pizzaFlavor3); order.Pizzas.Add(pizza); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeFalse(); resultValidation.Errors.Count.Should().Be(1); resultValidation.Errors.FirstOrDefault().ErrorMessage.Should().Be("Cada pizza pode ter no máximo dois(2) sabores."); }
public void Valor_pedido_valido_com_uma_pizza_e_um_sabor() { //Arrange var order = new Order(); var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); //Act order.CalculateOrder(); //Assert order.TotalValue.Should().Be(flavor.Value); order.Pizzas.FirstOrDefault()?.Value.Should().Be(flavor.Value); }
public void Pedido_invalido_sem_cadastro_e_sem_informacoes_de_cidade_do_endereco_solicitante() { //Arrange var order = new Order { Customer = new Customer { Address = new Address { Street = "Thiago Vieira de Castro", Number = 56, Complement = "Apto. 301", Neighborhood = "Triâgulo", State = "SC", } } }; var pizza = new Pizza(); var flavor = new Flavor { Name = "Calabresa", Value = 42.5M }; var pizzaFlavor = new PizzaFlavor { Flavor = flavor }; pizza.PizzaFlavors.Add(pizzaFlavor); order.Pizzas.Add(pizza); //Act var resultValidation = order.Validate(); //Assert resultValidation.IsValid.Should().BeFalse(); resultValidation.Errors.Count.Should().Be(1); resultValidation.Errors.FirstOrDefault().ErrorMessage.Should().Be("Deve ser informado a cidade de entrega."); }
public async Task Inserindo_um_pedido_via_api() { var flavor1 = new Flavor { Name = "3 Queijos", Value = 50M }; var jsonContent = JsonConvert.SerializeObject(flavor1); var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); var requisicao = await _integrationTestFixture.Client.PostAsync($"/api/Flavor", content); var resposta = await requisicao.Content.ReadAsStringAsync(); Assert.True(requisicao.IsSuccessStatusCode); var flavor2 = new Flavor { Name = "Veggie", Value = 59.99M }; jsonContent = JsonConvert.SerializeObject(flavor2); content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); requisicao = await _integrationTestFixture.Client.PostAsync($"/api/Flavor", content); resposta = await requisicao.Content.ReadAsStringAsync(); Assert.True(requisicao.IsSuccessStatusCode); var customer = new Customer { Cpf = "029.336.559-85", Name = "Marcio Machado", NickName = "Marcio", Phone = "(49)98802-2184", Address = new Address { Street = "Thiago Vieira de Castro", Number = 56, Neighborhood = "Triângulo", City = "Lages", State = "SC" } }; jsonContent = JsonConvert.SerializeObject(customer); content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); requisicao = await _integrationTestFixture.Client.PostAsync($"/api/Customer", content); resposta = await requisicao.Content.ReadAsStringAsync(); Assert.True(requisicao.IsSuccessStatusCode); var order = new Order { CustomerId = 1, Status = StatusPizza.InProgress, OrderDate = DateTime.Now, }; var pizza = new Pizza(); var pizzaFlavor1 = new PizzaFlavor { FlavorId = 1, Flavor = flavor1 }; pizza.PizzaFlavors.Add(pizzaFlavor1); var pizzaFlavor2 = new PizzaFlavor { FlavorId = 2, Flavor = flavor2 }; pizza.PizzaFlavors.Add(pizzaFlavor2); order.Pizzas.Add(pizza); jsonContent = JsonConvert.SerializeObject(order); content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); requisicao = await _integrationTestFixture.Client.PostAsync($"/api/OrderPizza", content); resposta = await requisicao.Content.ReadAsStringAsync(); Assert.True(requisicao.IsSuccessStatusCode); }