@Test
public void getSimpleClassFactModelTree() {

    Class[] expectedClazzes = {String.class, Boolean.class, Integer.class, Double.class, Number.class};
    for (Class expectedClazz : expectedClazzes) {
        final FactModelTree retrieved = AbstractDataManagementStrategy.getSimpleClassFactModelTree(
                expectedClazz.getSimpleName(),
                expectedClazz.getCanonicalName());
        assertNotNull(retrieved);
        String key = expectedClazz.getSimpleName();
        assertEquals(key, retrieved.getFactName());
        String fullName = expectedClazz.getCanonicalName();
        String packageName = fullName.substring(0, fullName.lastIndexOf("."));
        assertEquals(packageName, retrieved.getFullPackage());
        Map<String, FactModelTree.PropertyTypeName> simpleProperties = retrieved.getSimpleProperties();
        assertNotNull(simpleProperties);
        assertEquals(1, simpleProperties.size());
        assertTrue(simpleProperties.containsKey(TestProperties.LOWER_CASE_VALUE));
        FactModelTree.PropertyTypeName simplePropertyValue = simpleProperties.get(TestProperties.LOWER_CASE_VALUE);
        assertNotNull(simplePropertyValue);
        assertEquals(fullName, simplePropertyValue.getTypeName());
        assertEquals(fullName, simplePropertyValue.getPropertyTypeNameToVisualize());
        assertFalse(simplePropertyValue.getBaseTypeName().isPresent());
    }
}