@Test public void testUpdateRetryWithError() { Repository<Entity> mockRepo = Mockito.spy(repository); Map<String, Object> studentBody = buildTestStudentEntity(); Map<String, Object> studentMetaData = new HashMap<String, Object>(); Entity entity = new MongoEntity("student", null, studentBody, studentMetaData); int noOfRetries = 3; Mockito.doThrow(new InvalidDataAccessApiUsageException("Test Exception")) .when(mockRepo) .update("student", entity, false); Mockito.doCallRealMethod().when(mockRepo).updateWithRetries("student", entity, noOfRetries); try { mockRepo.updateWithRetries("student", entity, noOfRetries); } catch (InvalidDataAccessApiUsageException ex) { assertEquals(ex.getMessage(), "Test Exception"); } Mockito.verify(mockRepo, Mockito.times(noOfRetries)).update("student", entity, false); }
/** Simple test to verify BaseDao works. */ public void testCRUD() { User user = new User(); // set required fields user.setUsername("foo"); user.setPassword("bar"); user.setFirstName("first"); user.setLastName("last"); user.getAddress().setCity("Denver"); user.getAddress().setPostalCode("80465"); user.setEmail("*****@*****.**"); // create dao.saveObject(user); assertNotNull(user.getId()); // retrieve user = (User) dao.getObject(User.class, user.getId()); assertNotNull(user); assertEquals(user.getLastName(), "last"); // update user.getAddress().setCountry("USA"); dao.saveObject(user); assertEquals(user.getAddress().getCountry(), "USA"); // delete dao.removeObject(User.class, user.getId()); try { dao.getObject(User.class, user.getId()); fail("User 'foo' found in database"); } catch (ObjectRetrievalFailureException e) { assertNotNull(e.getMessage()); } catch (InvalidDataAccessApiUsageException e) { // Spring 2.0 throws this one assertNotNull(e.getMessage()); } }