### Question:
StackVersionResourceDefinition extends BaseResourceDefinition { @Override public Set<SubResourceDefinition> getSubResourceDefinitions() { Set<SubResourceDefinition> children = new HashSet<>(); children.add(new SubResourceDefinition(Resource.Type.OperatingSystem)); children.add(new SubResourceDefinition(Resource.Type.StackService)); children.add(new SubResourceDefinition(Resource.Type.StackLevelConfiguration)); children.add(new SubResourceDefinition(Resource.Type.RepositoryVersion)); children.add(new SubResourceDefinition(Resource.Type.StackArtifact)); children.add(new SubResourceDefinition(Resource.Type.CompatibleRepositoryVersion)); return children; } StackVersionResourceDefinition(); @Override String getPluralName(); @Override String getSingularName(); @Override Set<SubResourceDefinition> getSubResourceDefinitions();  }### Answer:
@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); }