// 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()); } }
// limOferta > limReserva @Test(expected = InputValidationException.class) public void testSetDatesWrong3() throws InstanceNotFoundException, InputValidationException, OfertaEmailException, OfertaMaxPersonasException, OfertaReservaDateException, OfertaEstadoException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); try { Calendar before = Calendar.getInstance(); before.add(Calendar.DAY_OF_MONTH, 1); 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()); } finally { /* Clear database. */ removeOferta(oferta.getOfertaId()); } }
@Test(expected = OfertaReservaDateException.class) public void testReservaDateException() throws InstanceNotFoundException, InputValidationException, OfertaEmailException, OfertaMaxPersonasException, OfertaReservaDateException, OfertaEstadoException, OfertaReclamaDateException { Oferta oferta = createOferta(getValidOferta()); Oferta oferta2 = null; try { // Calendar before = Calendar.getInstance(); before.add(Calendar.DAY_OF_MONTH, 2); oferta.setIniReserva(before); // Estos dos Calendar para que tenga coherencia y no salten excepciones al añadir la oferta Calendar after = Calendar.getInstance(); after.add(Calendar.DAY_OF_MONTH, 3); oferta.setLimReserva(after); Calendar lim = Calendar.getInstance(); lim.add(Calendar.DAY_OF_MONTH, 4); oferta.setLimOferta(lim); oferta2 = ofertaService.addOferta(oferta); ofertaService.reservarOferta(oferta2.getOfertaId(), USER_EMAIL, VALID_CREDIT_CARD_NUMBER); // Vamos a limpiar la segunda oferta en el siguiente metodo donde solo se reclama /* Clear database. */ } finally { removeOferta(oferta.getOfertaId()); removeOferta(oferta2.getOfertaId()); } }
@Test public void testAddInvalidOferta() throws InputValidationException, OfertaEstadoException { Oferta oferta = getValidOferta(); Oferta addedOferta = null; boolean exceptionCatched = false; try { // Check oferta titulo not null oferta.setTitulo(null); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta titulo not empty exceptionCatched = false; oferta = getValidOferta(); oferta.setTitulo(""); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta descripcion not null exceptionCatched = false; oferta = getValidOferta(); oferta.setDescripcion(null); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta description not null exceptionCatched = false; oferta = getValidOferta(); oferta.setDescripcion(""); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta iniReserva not null exceptionCatched = false; oferta = getValidOferta(); oferta.setIniReserva(null); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta limReserva not null exceptionCatched = false; oferta = getValidOferta(); oferta.setLimReserva(null); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta limOferta not null exceptionCatched = false; oferta = getValidOferta(); oferta.setLimOferta(null); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta precioReal >= 0 exceptionCatched = false; oferta = getValidOferta(); oferta.setPrecioReal((short) -1); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta precioRebajado >= 0 exceptionCatched = false; oferta = getValidOferta(); oferta.setPrecioRebajado((short) -1); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta maxPersonas >= 0 exceptionCatched = false; oferta = getValidOferta(); oferta.setMaxPersonas((short) -1); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta Estados exceptionCatched = false; oferta = getValidOferta(); oferta.setEstado((short) -1); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); // Check oferta Estados <= NUM_ESTADOS exceptionCatched = false; oferta = getValidOferta(); oferta.setEstado((short) (NUM_ESTADOS + 1)); try { addedOferta = ofertaService.addOferta(oferta); } catch (InputValidationException e) { exceptionCatched = true; } assertTrue(exceptionCatched); } finally { if (!exceptionCatched) { // Clear Database removeOferta(addedOferta.getOfertaId()); } } }