public void PagueUmLeveDoisNaoDeveSerAplicavelQuandoQuantidadeForMenorQue2() { //Arrange var quantidade = 1; var promocao = new PagueUmLeveDois(); //Act var aplicavel = promocao.Aplicavel(quantidade); //Assert aplicavel.Should().BeFalse(); }
public void PagueUmLeveDoisDeveSerAplicavelQuandoQuantidadeForMaiorOuIgualA2() { //Arrange var quantidade = 3; var promocao = new PagueUmLeveDois(); //Act var aplicavel = promocao.Aplicavel(quantidade); //Assert aplicavel.Should().BeTrue(); }
public static double Calcular(Produto produto) { switch (produto.Promocao) { case PromocaoEnum.PagueUmLeveDois: var pagueUmLeveDois = new PagueUmLeveDois(); return(pagueUmLeveDois.CalculaPromocao(produto)); case PromocaoEnum.TresPorDez: var tresPorDez = new TresPorDez(); return(tresPorDez.CalculaPromocao(produto)); default: return(produto.Quantidade * produto.Preco); } }
public void PagueUmLeveDoisDeveCalcularPrecoIgual10QuandoProdutoCustar10EQuantidadeFor2() { //Arrange var quantidade = 1; var produto = new Produto() { Preco = 10 }; var promocao = new PagueUmLeveDois(); //Act var preco = promocao.CalcularPreco(produto, quantidade); //Assert preco.Should().Be(10); }