### Question:
AbstractModuleDescriptor implements ModuleDescriptor<T>, StateAware { public ResourceDescriptor getResourceDescriptor(final String type, final String name) { return resources.getResourceDescriptor(type, name); } AbstractModuleDescriptor(final ModuleFactory moduleFactory); @Deprecated  AbstractModuleDescriptor(); void init(@NotNull final Plugin plugin, @NotNull final Element element); void destroy(final Plugin plugin); boolean isEnabledByDefault(); boolean isSystemModule(); @Deprecated boolean isSingleton(); String getCompleteKey(); String getPluginKey(); String getKey(); String getName(); Class<T> getModuleClass(); abstract T getModule(); String getDescription(); Map<String, String> getParams(); String getI18nNameKey(); String getDescriptionKey(); List<ResourceDescriptor> getResourceDescriptors(); List<ResourceDescriptor> getResourceDescriptors(final String type); ResourceLocation getResourceLocation(final String type, final String name); ResourceDescriptor getResourceDescriptor(final String type, final String name); Float getMinJavaVersion(); boolean satisfiesMinJavaVersion(); void setPlugin(final Plugin plugin); Plugin getPlugin(); @Override String toString(); void enabled(); void disabled();  }### Answer:
@Test public void testGetResourceDescriptor() throws DocumentException, PluginParseException { ModuleDescriptor descriptor = makeSingletonDescriptor(); descriptor.init(new StaticPlugin(), DocumentHelper.parseText("<animal key=\"key\" name=\"bear\" class=\"org.maera.plugin.mock.MockBear\">" + "<resource type='velocity' name='view' location='foo' />" + "</animal>").getRootElement()); assertNull(descriptor.getResourceLocation("foo", "bar")); assertNull(descriptor.getResourceLocation("velocity", "bar")); assertNull(descriptor.getResourceLocation("foo", "view")); assertEquals(new ResourceDescriptor(DocumentHelper.parseText("<resource type='velocity' name='view' location='foo' />").getRootElement()).getResourceLocationForName("view").getLocation(), descriptor.getResourceLocation("velocity", "view").getLocation()); }