Created
August 23, 2010 11:29
-
-
Save tucaz/545285 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[TestClass] | |
public class dado_uma_nova_reserva_com_produtos_em_estoque | |
{ | |
[TestInitialize] | |
public void quando() | |
{ | |
tenho_produtos_em_estoque(); | |
e_tenho_produto_selecionado(); | |
e_tenho_cliente(); | |
e_tenho_origem(); | |
e_efetuo_uma_nova_reserva(); | |
} | |
[TestMethod] | |
public void deve_verificar_se_o_produto_esta_em_estoque() | |
{ | |
EstoqueMock.Verify(x => x.ProdutoEmEstoque(CodigoProdutoSelecionado, Quantidade, (OrigemVenda)CodigoOrigem)); | |
} | |
[TestMethod] | |
public void deve_salvar_a_reserva() | |
{ | |
ReservaRep.Verify(x => x.Salvar(novaReserva)); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva() | |
{ | |
Assert.IsNotNull(novaReserva); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva_com_numero_valido() | |
{ | |
Reserva reserva = reservaServ.EfetuarReserva(CodigoProdutoSelecionado, Quantidade, EmailCliente, CodigoOrigem); | |
bool existeNumeroReserva = novaReserva != null && novaReserva.Codigo > 0; | |
Assert.IsTrue(existeNumeroReserva); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva_com_produto_reservado() | |
{ | |
bool existeProdutoReservado = novaReserva != null && novaReserva.ProdutoReservado != null && novaReserva.Quantidade == 1; | |
Assert.IsTrue(existeProdutoReservado); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva_com_cliente_solicitante() | |
{ | |
bool existeClienteSolicitante = novaReserva != null && !String.IsNullOrEmpty(novaReserva.EmailCliente); | |
Assert.IsTrue(existeClienteSolicitante); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva_com_origem_informada() | |
{ | |
bool existeOrigem = novaReserva != null && novaReserva.OrigemReserva == OrigemVenda.Site; | |
Assert.IsTrue(existeOrigem); | |
} | |
[TestMethod] | |
public void deve_retornar_uma_reserva_com_status_vigente() | |
{ | |
Assert.AreEqual(StatusReserva.Vigente, novaReserva.Status); | |
} | |
Reserva novaReserva; | |
ReservaService reservaServ; | |
private int CodigoProdutoSelecionado; | |
private int Quantidade; | |
private string EmailCliente; | |
private int CodigoOrigem; | |
Mock<Estoque> EstoqueMock; | |
Mock<IReserva> ReservaRep; | |
Mock<TodosProdutos> ProdutoRep; | |
private void tenho_produtos_em_estoque() | |
{ | |
EstoqueMock = new Mock<Estoque>(); | |
EstoqueMock.Setup(x => x.ProdutoEmEstoque(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<OrigemVenda>())).Returns(true); | |
Estoque consultaEstoque = EstoqueMock.Object; | |
ReservaRep = new Mock<IReserva>(); | |
ReservaRep.Setup(x => x.Salvar(It.IsAny<Reserva>())).Callback<Reserva>(x => ObjectHelper.IncrementarEntidade(x, "Codigo")); | |
IReserva reservaRep = ReservaRep.Object; | |
ProdutoRep = new Mock<TodosProdutos>(); | |
ProdutoRep.Setup(x => x.RecuperarPorCodigo(It.IsAny<int>())).Returns(ObjectHelper.CriarNovoProduto()); | |
TodosProdutos produtoRep = ProdutoRep.Object; | |
reservaServ = new ReservaService(consultaEstoque, reservaRep, produtoRep); | |
} | |
private void e_tenho_produto_selecionado() | |
{ | |
CodigoProdutoSelecionado = 0; | |
Quantidade = 1; | |
} | |
private void e_tenho_cliente() | |
{ | |
EmailCliente = "[email protected]"; | |
} | |
private void e_tenho_origem() | |
{ | |
CodigoOrigem = OrigemVenda.Site.GetHashCode(); | |
} | |
private void e_efetuo_uma_nova_reserva() | |
{ | |
novaReserva = reservaServ.EfetuarReserva(CodigoProdutoSelecionado, Quantidade, EmailCliente, CodigoOrigem); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment