@Test
public void testConvertFull() {

  ObjectRecord source = new ObjectRecord();
  ObjectRecord destination = new ObjectRecord();
  FactAclEntryRecord aclEntry = new FactAclEntryRecord();
  FactRecord record = new FactRecord()
          .setId(UUID.randomUUID())
          .setTypeID(UUID.randomUUID())
          .setValue("value")
          .setInReferenceToID(UUID.randomUUID())
          .setOrganizationID(UUID.randomUUID())
          .setOriginID(UUID.randomUUID())
          .setAddedByID(UUID.randomUUID())
          .setAccessMode(FactRecord.AccessMode.Explicit)
          .setConfidence(0.1f)
          .setTrust(0.2f)
          .setTimestamp(123456789)
          .setLastSeenTimestamp(987654321)
          .setSourceObject(source)
          .setDestinationObject(destination)
          .setBidirectionalBinding(true)
          .addFlag(FactRecord.Flag.RetractedHint)
          .addAclEntry(aclEntry);
  FactSEB seb = converter.apply(record);
  assertNotNull(seb);
  assertEquals(record.getId(), seb.getId());
  assertNotNull(seb.getType());
  assertEquals(record.getValue(), seb.getValue());
  assertNotNull(seb.getInReferenceTo());
  assertNotNull(seb.getOrganization());
  assertNotNull(seb.getOrigin());
  assertNotNull(seb.getAddedBy());
  assertEquals(record.getAccessMode().name(), seb.getAccessMode().name());
  assertEquals(record.getConfidence(), seb.getConfidence(), 0.0);
  assertEquals(record.getTrust(), seb.getTrust(), 0.0);
  assertEquals(record.getTimestamp(), seb.getTimestamp());
  assertEquals(record.getLastSeenTimestamp(), seb.getLastSeenTimestamp());
  assertNotNull(seb.getSourceObject());
  assertNotNull(seb.getDestinationObject());
  assertTrue(seb.isBidirectionalBinding());
  assertEquals(SetUtils.set(record.getFlags(), Enum::name), SetUtils.set(seb.getFlags(), Enum::name));
  assertFalse(seb.getAcl().isEmpty());
  verify(typeResolver).apply(record.getTypeID());
  verify(inReferenceToResolver).apply(record.getInReferenceToID());
  verify(organizationResolver).apply(record.getOrganizationID());
  verify(originResolver).apply(record.getOriginID());
  verify(addedByResolver).apply(record.getAddedByID());
  verify(objectConverter).apply(source);
  verify(objectConverter).apply(destination);
  verify(aclEntryConverter).apply(aclEntry);
}