}
@Test
public void testSubresource()
{
final ResourceSchema groupsResource = _schemas.getResource("groups");
final List<ResourceSchema> groupsSubresources = _schemas.getSubResources(groupsResource);
Assert.assertEquals(groupsSubresources.size(), 1);
final ResourceSchema groupsContactsResource = groupsSubresources.get(0);
Assert.assertEquals(groupsContactsResource.getName(), "contacts");
Assert.assertEquals(groupsContactsResource.getNamespace(), groupsResource.getNamespace());
final ResourceSchema noNamespaceResource = _schemas.getResource("noNamespace");
final List<ResourceSchema> actualNoNamespaceSubresources = _schemas.getSubResources(noNamespaceResource);
Assert.assertEquals(actualNoNamespaceSubresources.size(), 2);
final Set<String> expectedNoNamespaceSubresources = new HashSet<String>();
expectedNoNamespaceSubresources.add("noNamespaceSub");
expectedNoNamespaceSubresources.add("com.linkedin.restli.examples.noNamespace");
for (ResourceSchema sub: actualNoNamespaceSubresources)
{
final String schemaFullName = getResourceSchemaFullName(sub, sub.getName());
Assert.assertTrue(expectedNoNamespaceSubresources.contains(schemaFullName));
}
final ResourceSchema greetingResource = _schemas.getResource("greeting");
final List<ResourceSchema> greetingSubResources = _schemas.getSubResources(greetingResource);
Assert.assertEquals(greetingSubResources.size(), 1);
final ResourceSchema subgreetingsResource = greetingSubResources.get(0);
Assert.assertEquals(subgreetingsResource.getName(), "subgreetings");
Assert.assertEquals(subgreetingsResource.getNamespace(), greetingResource.getNamespace());
final List<ResourceSchema> subgreetingsSubResources = _schemas.getSubResources(subgreetingsResource);
Assert.assertEquals(subgreetingsSubResources.size(), 1);
final ResourceSchema subsubgreetingResource = subgreetingsSubResources.get(0);
Assert.assertEquals(subsubgreetingResource.getName(), "subsubgreeting");
Assert.assertEquals(subsubgreetingResource.getNamespace(), greetingResource.getNamespace());
}