@Test public void testUpdateBookCopyReservation() { try { simulateBeginTransaction(); bDao.updateBookCopyReservation(null); simulateEndTransaction(); System.out.println("Should have thrown NPException"); assertTrue(false); } catch (NullPointerException ex) { } BookCopyReservation myBCReservation = new BookCopyReservation(); myBCReservation.setReservationState(null); myBCReservation.setId(Long.MAX_VALUE); myBCReservation.setBookCopy(createTestBookCopy()); try { // reservation state is null simulateBeginTransaction(); bDao.updateBookCopyReservation(myBCReservation); simulateEndTransaction(); System.out.println("Should have thrown IllegalArgumentException, state is null"); assertTrue(false); } catch (IllegalArgumentException ex) { } myBCReservation.setReservationState(ReservationState.LENT); myBCReservation.setBookCopy(null); try { // book copy is null simulateBeginTransaction(); bDao.updateBookCopyReservation(myBCReservation); simulateEndTransaction(); System.out.println("Should have thrown IllegalArgumentException, book copy is null"); assertTrue(false); } catch (IllegalArgumentException ex) { } myBCReservation.setReservationState(ReservationState.READY); myBCReservation.setId(null); myBCReservation.setBookCopy(createTestBookCopy()); try { // id is null simulateBeginTransaction(); bDao.updateBookCopyReservation(myBCReservation); simulateEndTransaction(); System.out.println("Should have thrown IllegalArgumentException, book copy is null"); assertTrue(false); } catch (IllegalArgumentException ex) { } simulateBeginTransaction(); bDao.createBookCopyReservation(testBookCopyReservation1); simulateEndTransaction(); testBookCopyReservation1.setBookCopy(createTestBookCopy()); testBookCopyReservation1.setReservationState(ReservationState.RETURNED); BookCopyReservation resultOfUpdate = null; try { simulateBeginTransaction(); resultOfUpdate = bDao.updateBookCopyReservation(testBookCopyReservation1); simulateEndTransaction(); } catch (Exception ex) { ex.printStackTrace(); } assertEquals(testBookCopyReservation1.getBookCopy(), resultOfUpdate.getBookCopy()); assertEquals( testBookCopyReservation1.getReservationState(), resultOfUpdate.getReservationState()); }