public Reserva Criar(DateTime dataDevolucao, DateTime dataReserva, string cpf, int IdProduto, int IdPacote, List <int> opcionais) { Reserva reserva = new Reserva(); reserva.AtribuirDataDevolucaoPrevista(dataDevolucao); reserva.AtribuirDataReserva(dataReserva); var cliente = contexto.Clientes.SingleOrDefault(x => x.CPF.Equals(cpf)); reserva.AtribuirCliente(cliente); var pacote = contexto.Pacotes.SingleOrDefault(x => x.Id == IdPacote); reserva.AtribuirPacote(pacote); if (opcionais.Count >= 0) { List <Opcional> lista = new List <Opcional>(); foreach (int op in opcionais) { var opcional = contexto.Opcionais.SingleOrDefault(x => x.Id == op); lista.Add(opcional); } reserva.AtribuirOpcionais(lista); } var produto = contexto.Produtos.SingleOrDefault(x => x.Id == IdProduto); reserva.AtribuirProduto(produto); reserva.CalcularDiasDeLocacao(); reserva.CalcularValorPrevisto(); if (reserva.IsValid()) { contexto.Reservas.Add(reserva); contexto.SaveChanges(); } return(reserva); }
public void ReservaCriadaAtribuiOpcionaisCorretamente() { Opcional op = new Opcional("TesteOpcional", "TesteOpcional testando1", 59, 8); Opcional op1 = new Opcional("TesteOpcional1", "TesteOpcional testando2", 59, 8); Opcional op2 = new Opcional("TesteOpcional2", "TesteOpcional testando3", 59, 8); Reserva reserva = new Reserva(); List <Opcional> lista = new List <Opcional>(); lista.Add(op); lista.Add(op1); lista.Add(op2); reserva.AtribuirOpcionais(lista); var listaArray = lista.ToArray(); Assert.AreEqual(op, listaArray[0]); Assert.AreEqual(op1, listaArray[1]); Assert.AreEqual(op2, listaArray[2]); }
public void ReservaCriadaDiminuiEstoque() { Reserva Reserva = new Reserva(); Produto Produto = new Produto("Teste", "Teste testando", "Teste.png", 129, 5); Pacote Pacote = new Pacote("TestePacote", "Teste testando pacote", 148); Opcional op = new Opcional("TesteOpcional", "TesteOpcional testando1", 59, 8); Opcional op1 = new Opcional("TesteOpcional1", "TesteOpcional testando2", 59, 8); Opcional op2 = new Opcional("TesteOpcional2", "TesteOpcional testando3", 59, 8); List <Opcional> Lista = new List <Opcional>(); Lista.Add(op); Lista.Add(op1); Lista.Add(op2); Reserva.AtribuirProduto(Produto); Reserva.AtribuirOpcionais(Lista); Assert.AreEqual(4, Produto.QuantidadeDisponivel); Assert.AreEqual(7, op.QuantidadeDisponivel); Assert.AreEqual(7, op1.QuantidadeDisponivel); Assert.AreEqual(7, op2.QuantidadeDisponivel); }