public static ResourceModel processResource(final Class<?> resourceClass)
  {
    return processResource(resourceClass, null);
  }
@Test(description = "verifies simple resource for main properties")
  public void simpleRootResource()
  {
    final String expectedNamespace = "";

    final String expectedName = "foo";

    final String expectedD2ServiceName = "foo3";

    final Class<? extends RecordTemplate> expectedValueClass = EmptyRecord.class;

    final ResourceModel model = RestLiAnnotationReader.processResource(FooResource3.class);

    Assert.assertNotNull(model);

    Assert.assertTrue(model.isRoot());
    Assert.assertEquals(expectedName, model.getName());
    Assert.assertEquals(expectedNamespace, model.getNamespace());
    Assert.assertEquals(expectedD2ServiceName, model.getD2ServiceName());

    Assert.assertNull(model.getParentResourceClass());
    Assert.assertNull(model.getParentResourceModel());

    // keys
    Assert.assertEquals(0, model.getKeys().size());
    Assert.assertEquals(0, model.getKeyNames().size());
    Assert.assertEquals(0, model.getKeyClasses().size());

    // primary key
    Assert.assertNull(model.getPrimaryKey());

    // alternative key
    Assert.assertTrue(model.getAlternativeKeys().isEmpty());

    // model
    Assert.assertNotNull(model.getValueClass());
    Assert.assertEquals(expectedValueClass, model.getValueClass());
  }