Conforme prometido segue a lista de testes completa. Bom, pelo menos acho que está completa.
Procurei atender todas as situações de condicionais do método Relatorio. Todos os esteste estão executando sem erros. Agora, posso iniciar o refactoring, e se algum teste começar a falhar durante o refactoring, é porque algo está errado, e estou inserindo um bug no programa.
unit uTesteLocacao;
interface
uses TestFramework, uCliente, uFilme, uAluguel;
type
TTestLocacao = class(TTestCase)
published
procedure LocacaoFilmeInfantil1Dia;
procedure LocacaoFilmeInfantil4Dias;
procedure LocacaoFilmeLancamento1Dia;
procedure LocacaoFilmeLancamento2Dias;
procedure LocacaoFilmeRegular1Dia;
procedure LocacaoFilmeRegular3Dias;
procedure Locacao3FilmesDistintos5Dias;
end;
implementation
{ TTestLocacao }
procedure TTestLocacao.Locacao3FilmesDistintos5Dias;
var
FilmeInfantil: TFilme;
FilmeRegular: TFilme;
FilmeLancamento: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
FilmeInfantil := TFilme.Create('Tarzan', TFilme.Infantil);
FilmeLancamento := TFilme.Create('O Hobbit', TFilme.Lancamento);
FilmeRegular := TFilme.Create('Máquina Mortífera I', TFilme.Regular);
Cliente := TCliente.Create('Alice');
Locacao := TLocacao.Create(FilmeInfantil, 5);
Cliente.AdicionaLocacao(Locacao);
Locacao := TLocacao.Create(FilmeRegular, 5);
Cliente.AdicionaLocacao(Locacao);
Locacao := TLocacao.Create(FilmeLancamento, 1);
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|Tarzan|4,5' + #13 + '|Máquina Mortífera I|6,5' + #13 + '|O Hobbit|3' + #13 + 'O total é: 14' + #13 + 'Você ganhou: 3 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
FilmeInfantil.Free;
FilmeRegular.Free;
FilmeLancamento.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeInfantil1Dia;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('Tarzan', TFilme.Infantil);
Locacao := TLocacao.Create(Filme, 1);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|Tarzan|1,5' + #13 + 'O total é: 1,5' + #13 + 'Você ganhou: 1 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeInfantil4Dias;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('Tarzan', TFilme.Infantil);
Locacao := TLocacao.Create(Filme, 4);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|Tarzan|3' + #13 + 'O total é: 3' + #13 + 'Você ganhou: 1 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeLancamento1Dia;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('O Hobbit', TFilme.Lancamento);
Locacao := TLocacao.Create(Filme, 1);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|O Hobbit|3' + #13 + 'O total é: 3' + #13 + 'Você ganhou: 1 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeLancamento2Dias;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('O Hobbit', TFilme.Lancamento);
Locacao := TLocacao.Create(Filme, 2);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|O Hobbit|6' + #13 + 'O total é: 6' + #13 + 'Você ganhou: 2 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeRegular1Dia;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('Máquina Mortífera I', TFilme.Regular);
Locacao := TLocacao.Create(Filme, 1);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|Máquina Mortífera I|2' + #13 + 'O total é: 2' + #13 + 'Você ganhou: 1 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
procedure TTestLocacao.LocacaoFilmeRegular3Dias;
var
Filme: TFilme;
Cliente: TCliente;
Locacao: TLocacao;
Resultado: String;
Esperado: String;
begin
try
Filme := TFilme.Create('Máquina Mortífera I', TFilme.Regular);
Locacao := TLocacao.Create(Filme, 3);
Cliente := TCliente.Create('Alice');
Cliente.AdicionaLocacao(Locacao);
Resultado := Cliente.Relatorio();
Esperado := 'Registro de locação de Alice' + #13 + '|Máquina Mortífera I|3,5' + #13 + 'O total é: 3,5' + #13 + 'Você ganhou: 1 pontos';
Check(Resultado = Esperado, 'Falha no teste: Esperado: ' + Esperado + ' Realizado:' + Resultado);
finally
Filme.Free;
Cliente.Free;
Locacao.Free;
end;
end;
initialization
TestFramework.RegisterTest(TTestLocacao.Suite);
end.
Nenhum comentário:
Postar um comentário