### Question:
PropertyHelper { public List<PropertyEntry<?>> getFactProperties(FactRecord factRecord, TraverseParams traverseParams) { if (factRecord == null) throw new IllegalArgumentException("Missing required argument factRecord!"); if (traverseParams == null) throw new IllegalArgumentException("Missing required argument traverseParams!"); return ListUtils.concatenate( getMetaFactsAsProperties(factRecord, traverseParams), getStaticFactProperties(factRecord)); } @Inject  PropertyHelper(FactRetractionHandler factRetractionHandler,
                        ObjectFactDao objectFactDao,
                        ObjectFactTypeResolver objectFactTypeResolver,
                        TiSecurityContext securityContext,
                        SubjectResolver subjectResolver,
                        OrganizationResolver organizationResolver,
                        OriginResolver originResolver); List<PropertyEntry<?>> getObjectProperties(ObjectRecord objectRecord, TraverseParams traverseParams); List<PropertyEntry<?>> getFactProperties(FactRecord factRecord, TraverseParams traverseParams);  }### Answer:
@Test public void testGetFactPropsInputValidation() { assertThrows(IllegalArgumentException.class, () -> helper.getFactProperties(null, TraverseParams.builder().build())); assertThrows(IllegalArgumentException.class, () -> helper.getFactProperties(new FactRecord(), null)); }
@Test public void testGetFactProperties() { FactRecord factRecord = new FactRecord() .setId(UUID.randomUUID()) .setAddedByID(UUID.randomUUID()) .setOrganizationID(UUID.randomUUID()) .setOriginID(UUID.randomUUID()); when(objectFactDao.searchFacts(any())).thenReturn(ResultContainer.<FactRecord>builder().build()); List<PropertyEntry<?>> props = helper.getFactProperties(factRecord, TraverseParams.builder().build()); assertEquals(10, props.size()); verify(objectFactDao).searchFacts(any()); verify(subjectResolver).resolveSubject(factRecord.getAddedByID()); verify(organizationResolver).resolveOrganization(factRecord.getOrganizationID()); verify(originResolver).apply(factRecord.getOriginID()); }