### Question:
SyncCollection { public SyncKey getSyncKey() { return syncKey; } protected  SyncCollection(PIMDataType dataType, SyncKey syncKey, CollectionId collectionId,
			Boolean deletesAsMoves, Boolean changes, Optional<Integer> windowSize, 
			SyncCollectionOptions options, List<EncodedSyncCollectionCommandRequest> commands); static Builder builder(); PIMDataType getDataType(); CollectionId getCollectionId(); SyncKey getSyncKey(); List<EncodedSyncCollectionCommandRequest> getCommands(); Boolean getDeletesAsMoves(); Boolean isChanges(); Optional<Integer> getWindowSize(); SyncCollectionOptions getOptions(); boolean hasOptions(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }### Answer:
@Test public void testBuilderSyncKeyIsNotRequired() { SyncCollection syncRequestCollection = builderWithRequirement().syncKey(null).build(); assertThat(syncRequestCollection.getSyncKey()).isNull(); }
@Test public void testBuilderSyncKeyValid() { SyncCollection syncRequestCollection = builderWithRequirement().syncKey(new SyncKey("blabla")).build(); assertThat(syncRequestCollection.getSyncKey()).isEqualTo(new SyncKey("blabla")); }