@Test(expected = OfertaMaxPersonasException.class) public void testMaxPersonasException() throws InstanceNotFoundException, InputValidationException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException, OfertaEstadoException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); try { ofertaService.reservarOferta(oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER); ofertaService.reservarOferta( oferta.getOfertaId(), "a" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER); ofertaService.reservarOferta( oferta.getOfertaId(), "b" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER); ofertaService.reservarOferta( oferta.getOfertaId(), "c" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER); ofertaService.reservarOferta( oferta.getOfertaId(), "d" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER); ofertaService.reservarOferta( oferta.getOfertaId(), "e" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER); } finally { /* Clear database. */ for (Reserva reserva : ofertaService.findReservas(oferta.getOfertaId(), null)) { ofertaService.reclamarOferta(reserva.getReservaId()); removeReserva(reserva.getReservaId()); } removeOferta(oferta.getOfertaId()); } }
public static ReservaDto toReservaDto(Reserva reserva) { return new ReservaDto( reserva.getReservaId(), reserva.getOfertaId(), reserva.getEstado(), reserva.getFechaReserva()); }
@Test(expected = OfertaEstadoException.class) public void testEstadoException() throws InstanceNotFoundException, InputValidationException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException, OfertaEstadoException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); Reserva reserva = null; try { reserva = ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER)); oferta.setMaxPersonas((short) 2); ofertaService.updateOferta( oferta.getOfertaId(), oferta.getTitulo(), oferta.getDescripcion(), oferta.getIniReserva(), oferta.getLimReserva(), oferta.getLimOferta(), oferta.getPrecioReal(), oferta.getPrecioRebajado(), oferta.getMaxPersonas()); /* Clear database. */ } finally { ofertaService.reclamarOferta(reserva.getReservaId()); removeReserva(reserva.getReservaId()); removeOferta(oferta.getOfertaId()); } }
@Test(expected = InstanceNotFoundException.class) public void testReservarNonExistentOferta() throws InputValidationException, InstanceNotFoundException { Reserva reserva = ofertaService.findReserva(NON_EXISTENT_RESERVA_ID); /* Clear database. */ removeReserva(reserva.getReservaId()); }
@Test public void testReservarOfertaAndFindReserva() throws InstanceNotFoundException, InputValidationException, OfertaEstadoException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); try { /* Reservar oferta. */ Reserva reserva = ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER)); /* Find reserva. */ Reserva foundReserva = ofertaService.findReserva(reserva.getReservaId()); /* Check reserva. */ assertEquals(reserva, foundReserva); assertEquals(VALID_CREDIT_CARD_NUMBER, foundReserva.getNumeroTarjeta()); assertEquals(USER_EMAIL, foundReserva.getEmailUsuario()); assertEquals(oferta.getOfertaId(), foundReserva.getOfertaId()); assertTrue(Calendar.getInstance().after(foundReserva.getFechaReserva())); /* Clear database */ // Reclamamos la oferta para cambiar su estado y poder eliminarla (Solo se pueden borrar // ofertas 'Creadas' o 'Liberadas' ofertaService.reclamarOferta(reserva.getReservaId()); removeReserva(reserva.getReservaId()); } finally { removeOferta(oferta.getOfertaId()); } }
@Test public void testReservarOfertasAndFindReservas() throws InstanceNotFoundException, InputValidationException, OfertaEstadoException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); List<Reserva> reservas = new ArrayList<Reserva>(); List<Reserva> _reservas = new ArrayList<Reserva>(); try { reservas.add( 0, ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER))); reservas.add( 1, ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), "1" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER))); _reservas = ofertaService.findReservas(oferta.getOfertaId(), null); assertEquals(reservas.size(), _reservas.size()); assertEquals(reservas, _reservas); /* Añadir y buscar reserva en estado cerrada */ reservas.add( 2, ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), "2" + USER_EMAIL, VALID_CREDIT_CARD_NUMBER))); ofertaService.reclamarOferta(reservas.get(2).getReservaId()); _reservas = ofertaService.findReservas(oferta.getOfertaId(), Reserva.ESTADO_CERRADA); assertEquals(1, _reservas.size()); for (Reserva reserva : ofertaService.findReservas(oferta.getOfertaId(), null)) { ofertaService.reclamarOferta(reserva.getReservaId()); removeReserva(reserva.getReservaId()); } } finally { removeOferta(oferta.getOfertaId()); } }
// Test comentado porque no podemos cambiar las fechas de una oferta reservada para que se reclame // y tampoco antes de reservarse porque iniReserva <= limReserva <= limOferta // En resumen para comprobarlo habria que esperar a que en la oferta caducara su limite para // disfrutarla // @Test(expected = OfertaReclamaDateException.class) public void testReclamaDateException() throws InstanceNotFoundException, InputValidationException, OfertaEmailException, OfertaMaxPersonasException, OfertaReservaDateException, OfertaEstadoException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); Reserva reserva = null; try { reserva = ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER)); Calendar before = Calendar.getInstance(); before.add(Calendar.DAY_OF_MONTH, -4); oferta.setIniReserva(before); Calendar after = Calendar.getInstance(); after.add(Calendar.DAY_OF_MONTH, -3); oferta.setLimReserva(after); Calendar lim = Calendar.getInstance(); lim.add(Calendar.DAY_OF_MONTH, -2); oferta.setLimOferta(lim); ofertaService.updateOferta( oferta.getOfertaId(), oferta.getTitulo(), oferta.getDescripcion(), oferta.getIniReserva(), oferta.getLimReserva(), oferta.getLimOferta(), oferta.getPrecioReal(), oferta.getPrecioRebajado(), oferta.getMaxPersonas()); ofertaService.reclamarOferta(reserva.getReservaId()); removeReserva(reserva.getReservaId()); } finally { /* Clear database. */ removeOferta(oferta.getOfertaId()); } }
@Test(expected = InputValidationException.class) public void testReservarOfertaWithInvalidCreditCard() throws InputValidationException, InstanceNotFoundException, OfertaEstadoException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException { Oferta oferta = createOferta(getValidOferta()); try { Reserva reserva = ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, INVALID_CREDIT_CARD_NUMBER)); /* Clear database. */ removeReserva(reserva.getReservaId()); } finally { removeOferta(oferta.getOfertaId()); } }
@Test public void testReservar_y_Reclamar() throws InstanceNotFoundException, InputValidationException, OfertaEstadoException, OfertaMaxPersonasException, OfertaEmailException, OfertaReservaDateException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); try { Reserva reserva = ofertaService.findReserva( ofertaService.reservarOferta( oferta.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER)); assertTrue(ofertaService.reclamarOferta(reserva.getReservaId())); assertFalse(ofertaService.reclamarOferta(reserva.getReservaId())); /* Clear database. */ removeReserva(reserva.getReservaId()); } finally { removeOferta(oferta.getOfertaId()); } }