private static void Decorator() { var cheeseDecorator = new CheeseDecorator(null); var pizza = new PizzaDecorator(cheeseDecorator); Console.WriteLine(pizza.Display()); }
public void DeveCriarUmaPizzaMargueritaSemAdicionais() { var pizza = new PizzaDecorator(new PizzaPequena(new SaborMarguerita())); pizza.AdicionarPersonalizacao(null); Assert.Equal(string.Empty, pizza.Personalizacoes()); }
public void DeveCriarUmaPizzaMargueritaComTodosAdicionais() { var pizza = new PizzaDecorator(new PizzaPequena(new SaborMarguerita())); pizza.AdicionarPersonalizacao(new BordaRecheada()); pizza.AdicionarPersonalizacao(new ExtraBacon()); pizza.AdicionarPersonalizacao(new SemCebola()); Assert.NotEqual(string.Empty, pizza.Personalizacoes()); }
public void CalculateCost_Returns_Cost() { //Arrange var pizzaDecorator = new PizzaDecorator(_largePizza); //Act var cost = pizzaDecorator.CalculateCost(); //Assert Assert.AreEqual(9.00, cost); }
public void GetDescription_Returns_Description() { //Arrange var pizzaDecorator = new PizzaDecorator(_largePizza); //Act var description = pizzaDecorator.GetDescription(); //Assert Assert.AreEqual("Large Pizza", description); }
public void DeveCriarUmaPizzaMargueritaComDoisAdicionais() { var pizza = new PizzaDecorator(new PizzaPequena(new SaborMarguerita())); pizza.AdicionarPersonalizacao(new BordaRecheada()); pizza.AdicionarPersonalizacao(new SemCebola()); Assert.NotEqual(string.Empty, pizza.Personalizacoes()); Assert.Equal($"{ConstantesPersonalizacao.BordaRecheada}, {ConstantesPersonalizacao.SemCebola}", pizza.Personalizacoes()); Assert.Equal(25, pizza.ValorTotal()); Assert.Equal(20, pizza.TempoTotalPreparo()); //Assert.Equal(25, pizza.Valor()); //Assert.Equal(20, pizza.TempoPreparo()); }
public RespostaApi Inserir(PedidoViewModel pedidoViewModel) { if (!ValidarTamanho(pedidoViewModel.Tamanho)) { return(new RespostaApi($"Tamanho inválido ou não informado: {pedidoViewModel.Tamanho}")); } if (!ValidarSabor(pedidoViewModel.Sabor)) { return(new RespostaApi($"Sabor inválido ou não informado: {pedidoViewModel.Sabor}")); } var pizza = PizzaDecorator.Criar(pedidoViewModel.Tamanho, pedidoViewModel.Sabor); if (pedidoViewModel.Personalizacoes?.Count > 0) { var adicionaisInvalidos = ValidarPersonalizacoes(pedidoViewModel.Personalizacoes); if (adicionaisInvalidos.Any()) { return(new RespostaApi("Personalizações inválidas", adicionaisInvalidos)); } pedidoViewModel.Personalizacoes.ForEach(x => pizza.AdicionarPersonalizacao(ServicoPizza.Personalizacoes[x])); } var pedido = new Pedido { Tamanho = pizza.Tamanho(), Sabor = pizza.SaborEscolhido(), Personalizacoes = pizza.Personalizacoes(), ValorTotal = pizza.ValorTotal(), TempoPreparo = pizza.TempoTotalPreparo() }; var result = _contexto.Pedidos.Add(pedido); _contexto.SaveChanges(); var resumo = new { Pedido = result.Entity.Id, Tamanho = pizza.Tamanho(), Sabor = pizza.SaborEscolhido(), Personalizacoes = pizza.DetalhesPersonalizacoes(), ValorPizza = pizza.Valor(), TempoPreparo = pizza.TempoTotalPreparo(), ValorPedido = pizza.ValorTotal() }; return(new RespostaApi("Pedido criado", resumo)); }
public void DeveCriarUmaPizzaGrande() { var pizza = new PizzaDecorator(new PizzaGrande(new SaborCalabresa())); Assert.Equal(ConstantesPizza.TamanhoGrande, pizza.Tamanho()); }
public void DeveCriarUmaPizzaPequena() { var pizza = new PizzaDecorator(new PizzaPequena(new SaborCalabresa())); Assert.Equal(ConstantesPizza.TamanhoPequeno, pizza.Tamanho()); }
public void DeveCriarUmaPizzaSaborPortuguesa() { var pizza = new PizzaDecorator(new PizzaPequena(new SaborPortuguesa())); Assert.Equal(ConstantesSabor.Portuguesa, pizza.SaborEscolhido()); }
public static void Execute() { PizzaDecorator.Execute(); }