boolean isAddTested = false;
boolean isDeletionEventTested = false;
boolean isCustomDeletionTested = false;
DocumentList docList =
getObjectUnderTest(os, docSet, customDeletionSet, deletionEventSet);
Document doc = null;
while ((doc = docList.nextDocument()) != null) {
Property actionProp = doc.findProperty(SpiConstants.PROPNAME_ACTION);
ActionType actionType = SpiConstants.ActionType.findActionType(
actionProp.nextValue().toString());
String id =
doc.findProperty(SpiConstants.PROPNAME_DOCID).nextValue().toString();
if (ActionType.ADD.equals(actionType)) {
IBaseObject object = os.getObject(null, id);
assertFalse(object instanceof FileDeletionObject);
assertTrue(checkpointContains(docList.checkpoint(),
doc.findProperty(SpiConstants.PROPNAME_LASTMODIFIED),
JsonField.LAST_MODIFIED_TIME));
isAddTested = true;
} else if (ActionType.DELETE.equals(actionType)) {
IBaseObject object = os.getObject(null, id);
if (object.isDeletionEvent()) {
assertTrue(checkpointContains(docList.checkpoint(),
doc.findProperty(SpiConstants.PROPNAME_LASTMODIFIED),
JsonField.LAST_DELETION_EVENT_TIME));
isDeletionEventTested = true;
} else {
assertTrue(checkpointContains(docList.checkpoint(),
doc.findProperty(SpiConstants.PROPNAME_LASTMODIFIED),
JsonField.LAST_CUSTOM_DELETION_TIME));
isCustomDeletionTested = true;
}
}
}
assertEquals(expectAddTested, isAddTested);
assertEquals(expectCustomDeletionTested, isCustomDeletionTested);
assertEquals(expectDeletionEventTested, isDeletionEventTested);
String expectedCheckpoint = "{"
+ (expectAddTested
? "\"uuid\":\"{AAAAAAA4-0000-0000-0000-000000000000}\","
+ "\"lastModified\":\"" + CHECKPOINT_TIMESTAMP + TZ_OFFSET + "\","
: "\"uuid\":\"{AAAAAAAA-0000-0000-0000-000000000000}\","
+ "\"lastModified\":\"1990-01-01T00:00:00.000\",")
+ (expectDeletionEventTested
? "\"uuidToDelete\":\"{DE000002-0000-0000-0000-000000000000}\","
+ "\"lastRemoveDate\":\"" + CHECKPOINT_TIMESTAMP + TZ_OFFSET + "\","
: "\"uuidToDelete\":\"{BBBBBBBB-0000-0000-0000-000000000000}\","
+ "\"lastRemoveDate\":\"2000-01-01T00:00:00.000\",")
+ (expectCustomDeletionTested
? "\"uuidToDeleteDocs\":\"{CD000003-0000-0000-0000-000000000000}\","
+ "\"lastModifiedDate\":\"" + CHECKPOINT_TIMESTAMP + TZ_OFFSET
+ "\""
: "\"uuidToDeleteDocs\":\"{CCCCCCCC-0000-0000-0000-000000000000}\","
+ "\"lastModifiedDate\":\"2010-01-01T00:00:00.000\"")
+ "}";
assertCheckpointEquals(expectedCheckpoint, docList.checkpoint());
}