@Test public void testGetUpdatedObjects() throws Exception { SalesforceConnector connector = Mockito.spy(new SalesforceConnector()); connector.setConnection(connection); when(connection.getConfig()).thenReturn(createConnectorConfig("userX")); connector.setObjectStoreHelper(objectStoreHelper); Calendar lastUpdateTime = createCalendar(4, 15); when(objectStoreHelper.getTimestamp("Account")).thenReturn(lastUpdateTime); setServerTime(connection, 5, 15); when(connection.getUpdated(anyString(), any(Calendar.class), any(Calendar.class))) .thenReturn(getUpdatedResult); Calendar latestDateCovered = createCalendar(5, 10); when(getUpdatedResult.getLatestDateCovered()).thenReturn(latestDateCovered); when(getUpdatedResult.getIds()).thenReturn(new String[] {"1", "3"}); List<Map<String, Object>> updatedObjects = new ArrayList<Map<String, Object>>(); doReturn(updatedObjects) .when(connector) .retrieve("Account", Arrays.asList("1", "3"), Arrays.asList("Id", "Name")); assertSame( updatedObjects, connector.getUpdatedObjects("Account", 60, Arrays.asList("Id", "Name"))); verify(connection) .getUpdated(eq("Account"), startTimeCaptor.capture(), endTimeCaptor.capture()); assertStartTime(4, 15); assertEndTime(5, 15); verify(objectStoreHelper).updateTimestamp(getUpdatedResult, "Account"); }