### Question:
DefaultModuleDescriptorFactory implements ModuleDescriptorFactory { public ModuleDescriptor<?> getModuleDescriptor(final String type) throws PluginParseException, IllegalAccessException, InstantiationException, ClassNotFoundException { if (shouldSkipModuleOfType(type)) { return null; } @SuppressWarnings("unchecked") final Class<? extends ModuleDescriptor> moduleDescriptorClazz = getModuleDescriptorClass(type); if (moduleDescriptorClazz == null) { throw new PluginParseException("Cannot find ModuleDescriptor class for plugin of type '" + type + "'."); } return hostContainer.create(moduleDescriptorClazz); } @Deprecated  DefaultModuleDescriptorFactory();  DefaultModuleDescriptorFactory(final HostContainer hostContainer); @SuppressWarnings("unchecked") Class<? extends ModuleDescriptor> getModuleDescriptorClass(final String type); ModuleDescriptor<?> getModuleDescriptor(final String type); void setModuleDescriptors(final Map<String, String> moduleDescriptorClassNames); boolean hasModuleDescriptor(final String type); void addModuleDescriptor(final String type, final Class<? extends ModuleDescriptor> moduleDescriptorClass); void removeModuleDescriptorForType(final String type); void setPermittedModuleKeys(List<String> permittedModuleKeys);  }### Answer:
@Test public void testInvalidModuleDescriptorType() { try { moduleDescriptorFactory.getModuleDescriptor("foobar"); fail("Should have thrown exception"); } catch (final IllegalAccessException e) { e.printStackTrace(); } catch (final PluginParseException e) { return; } catch (final ClassNotFoundException e) { e.printStackTrace(); } catch (final InstantiationException e) { e.printStackTrace(); } fail("Threw the wrong exception"); }