public void Testa_Se_Ao_Incluir_Uma_Sala_Que_Ja_Esta_Cadastrada_No_Mesmo_Horario_Exibe_Mensagem_De_Validacao() { // Dado que o horário da sala 1 seja incluído. var horarioModel = new HorarioModel { HoraInicio = new DateTime(2015, 1, 1, 10, 0, 0), HoraTermino = new DateTime(2015, 1, 1, 11, 30, 0), IdSala = 1 }; var horariosSala1 = (from h in horarios where h.IdSala == 1 select h).ToList(); var mock = new Mock<IHorarioRepository>(); mock.Setup(u => u.Incluir(horarioModel)).Verifiable(); mock.Setup(u => u.Listar(horarioModel)).Returns(horariosSala1); try { // Quando incluir o horário. var horarioService = new HorarioService(mock.Object); horarioService.Incluir(horarioModel); Assert.Fail("A sala não deveria ser incluída nesse horáro, pois ela já tem reserva neste mesmo horário."); } catch (ReservaIngressosCinemaException ex) { // Então deve exibir mensagem que a sala já está cadastrada no horário que se deseja cadastrar. var mensagemEsperada = HorarioResource.SalaJaCasdastradaNoMesmoHorarioMensagem; Assert.AreEqual(mensagemEsperada, ex.Mensagem); } }
private void ValidaSeSalaNaoEstaMarcadaParaOMesmoHorario(HorarioModel horarioModel) { if (Listar(horarioModel).Count == 0) { return; } throw new ReservaIngressosCinemaException("Id", HorarioResource.SalaJaCasdastradaNoMesmoHorarioMensagem); }
public void Testa_Se_For_Feita_Uma_Reserva_De_Sala_Que_Ja_Esta_Lotada_Exibe_Mensagem_De_Validacao() { // Dado que a reserva seja feita. var reservaModel = new ReservaModel { QuantidadeIngressos = 1, IdHorario = 1, IdUsuario = 7, HorarioModel = new HorarioModel { IdSala = 1 } }; var salaModel = new SalaModel { Id = 1, QuantidadeLugares = 5, Nome = "Sala 01", Descricao = "Sala para exibições 3D." }; var horarioModel = new HorarioModel { Id = 1, IdSala = 1, IdFilme = 3 }; var reservas = new List<ReservaModel> { new ReservaModel { Id = 1, IdHorario = 1, IdUsuario = 1, HorarioModel = horarioModel }, new ReservaModel { Id = 2, IdHorario = 1, IdUsuario = 2, HorarioModel = horarioModel }, new ReservaModel { Id = 3, IdHorario = 1, IdUsuario = 3, HorarioModel = horarioModel }, new ReservaModel { Id = 4, IdHorario = 1, IdUsuario = 4, HorarioModel = horarioModel }, new ReservaModel { Id = 5, IdHorario = 1, IdUsuario = 5, HorarioModel = horarioModel } }; var mock = new Mock<IReservaRepository>(); mock.Setup(u => u.Incluir(reservaModel)).Verifiable(); mock.Setup(u => u.ListarComObjetosFilhos(It.IsAny<ReservaModel>())).Returns(reservas); var salaMock = new Mock<ISalaRepository>(); salaMock.Setup(u => u.Buscar(It.IsAny<SalaModel>())).Returns(salaModel); try { // Quando a reserva for feita. var reservaService = new ReservaService(mock.Object, salaMock.Object); reservaService.Incluir(reservaModel); Assert.Fail("A reserva não poderia ser feita, pois a sala já está lotada."); } catch (ReservaIngressosCinemaException ex) { // Então deve exibir mensagem que a sala está lotada. var mensagemEsperada = ReservaResource.SalaLotadaMensagem; Assert.AreEqual(mensagemEsperada, ex.Mensagem); } }
private void ValidaDadosHorario(HorarioModel horarioModel) { ValidaSeSalaNaoEstaMarcadaParaOMesmoHorario(horarioModel); }
public List<HorarioModel> Listar(HorarioModel horarioModel) { return horarioRepository.Listar(horarioModel); }
public void Incluir(HorarioModel horarioModel) { ValidaDadosHorario(horarioModel); horarioRepository.Incluir(horarioModel); }
public void Incluir(HorarioModel horarioModel) { // Executa a inclusão no banco. }
public List<HorarioModel> Listar(HorarioModel horarioModel) { // Busca no banco. return new List<HorarioModel>(); }