Olá pessoal escrevi um teste utilizando a metodologia tdd, o teste passou. Mais gostaria de saber se a maneira como o escrevi está correta, se tem uma maneira melhor para fazê-lo, e como refatorar pois essa parte não consegui. Está escrito em C#, desculpem mas se puderem me ajudar msm assim.
[code] [TestMethod]
public void Locacao_de_filme()
{
LocacaoEntity locacao = new LocacaoEntity();
locacao.NCliente = “Pedro”;
locacao.CodFilme = “123-A”;
locacao.QtdFilmes = 1;
locacao.dataLocacao = new DateTime(2011, 4, 2);
locacao.dataDevolucao = new DateTime (2011, 4, 5);
var mock = new Moq.Mock<ILocacaoDAL>();
mock.Setup(x => x.Locar(locacao)).Returns(true);
LocacaoBusiness locacaoBusiness = new LocacaoBusiness(mock.Object);
bool locacao_realizada = locacaoBusiness.Locar(locacao);
Assert.IsTrue(locacao_realizada);[/code]
class Business
[code]public class LocacaoBusiness
{
private ILocacaoDAL _locacaoDAL = null;
public LocacaoBusiness(ILocacaoDAL locacaoDAL)
{
_locacaoDAL = locacaoDAL;
}
public bool Locar(LocacaoEntity locacao)
{
DateTime dataAtual = DateTime.Today;
if (DateTime.Compare(dataAtual, locacao.dataLocacao) > 0)
{
throw (new Exception("Data de Locação Inválida"));
}
else if (DateTime.Compare(locacao.dataLocacao, locacao.dataDevolucao) > 0)
{
throw (new Exception("Data de Devolução Inválida"));
}
else if (locacao.NCliente != "Pedro")
{
throw (new Exception("Cliente não cadastrado"));
}
else if (locacao.CodFilme != "123-A")
{
throw (new Exception("Filme não cadastrado"));
}
else if (locacao.QtdFilmes > 6)
{
throw (new Exception("Quantidade de filmes não permitida"));
}
return _locacaoDAL.Locar(locacao);
}[/code]
class entity
public class LocacaoEntity
{
public String NCliente { get; set; }
public String CodFilme { get; set; }
public int QtdFilmes { get; set; }
public DateTime dataLocacao { get; set; }
public DateTime dataDevolucao { get; set; }
}
class DAL
namespace Locadora
{
public interface ILocacaoDAL
{
bool Locar(LocacaoEntity locacao);
}
Vlw!!!