Skip to content

Instantly share code, notes, and snippets.

@GuilhermeManzano
Created December 13, 2020 22:00
Show Gist options
  • Save GuilhermeManzano/6b320bb6db981cc511e064a2fce13900 to your computer and use it in GitHub Desktop.
Save GuilhermeManzano/6b320bb6db981cc511e064a2fce13900 to your computer and use it in GitHub Desktop.
@RunWith(Parameterized.class)
public class CalculoValorLocacaoTest {
private LocacaoService service;
@Parameter
public List<Filme> filmes;
@Parameter(value=1)
public Double valorLocacao;
@Parameter(value=2)
public String cenario;
@Before
public void setup(){
service = new LocacaoService();
}
private static Filme filme1 = new Filme("Filme 1", 2, 4.0);
private static Filme filme2 = new Filme("Filme 2", 2, 4.0);
private static Filme filme3 = new Filme("Filme 3", 2, 4.0);
private static Filme filme4 = new Filme("Filme 4", 2, 4.0);
private static Filme filme5 = new Filme("Filme 5", 2, 4.0);
private static Filme filme6 = new Filme("Filme 6", 2, 4.0);
private static Filme filme7 = new Filme("Filme 7", 2, 4.0);
@Parameters(name="{2}")
public static Collection<Object[]> getParametros(){
return Arrays.asList(new Object[][] {
{Arrays.asList(filme1, filme2), 8.0, "2 Filmes: Sem Desconto"},
{Arrays.asList(filme1, filme2, filme3), 11.0, "3 Filmes: 25%"},
{Arrays.asList(filme1, filme2, filme3, filme4), 13.0, "4 Filmes: 50%"},
{Arrays.asList(filme1, filme2, filme3, filme4, filme5), 14.0, "5 Filmes: 75%"},
{Arrays.asList(filme1, filme2, filme3, filme4, filme5, filme6), 14.0, "6 Filmes: 100%"},
{Arrays.asList(filme1, filme2, filme3, filme4, filme5, filme6, filme7), 18.0, "7 Filmes: Sem Desconto"}
});
}
@Test
public void deveCalcularValorLocacaoConsiderandoDescontos() throws FilmeSemEstoqueException, LocadoraException{
//cenario
Usuario usuario = new Usuario("Usuario 1");
//acao
Locacao resultado = service.alugarFilme(usuario, filmes);
//verificacao
assertThat(resultado.getValor(), is(valorLocacao));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment