@Test
public void testGetSubResourceDefinitions() {

  ResourceDefinition def = new StackVersionResourceDefinition();
  Set<SubResourceDefinition> subResources = def.getSubResourceDefinitions();
  assertEquals(6, subResources.size());
  boolean operatingSystemFound = false;
  boolean serviceFound = false;
  boolean configFound = false;
  boolean repoFound = false;
  boolean artifactReturned = false;
  boolean compatibleFound = false;
  for (SubResourceDefinition subResource : subResources) {
    Resource.Type type = subResource.getType();
    if (type.equals(Resource.Type.OperatingSystem)) {
      operatingSystemFound = true;
    } else if (type.equals(Resource.Type.StackService)) {
      serviceFound = true;
    } else if (type.equals(Resource.Type.StackLevelConfiguration)) {
      configFound = true;
    } else if (type.equals(Resource.Type.RepositoryVersion)) {
      repoFound = true;
    } else if (type.equals(Resource.Type.StackArtifact)) {
      artifactReturned = true;
    } else if (type.equals(Resource.Type.CompatibleRepositoryVersion)) {
      compatibleFound = true;
    }
  }
  assertTrue(operatingSystemFound);
  assertTrue(serviceFound);
  assertTrue(configFound);
  assertTrue(repoFound);
  assertTrue(artifactReturned);
  assertTrue(compatibleFound);
}