### Question:
ParameterizedObjectFactory { @Nonnull public T create(@Nullable String objectDescription) { T object; try { object = createInternal(objectDescription); } catch (IllegalArgumentException e) { log.warning(e.getMessage() + " -> Falling back to default " + m_fallbackObjectName + "."); object = createInternal(m_fallbackObjectName); } return object; } ParameterizedObjectFactory(
      @Nonnull final Map<String, Class<? extends T>> objectNameToClassMapping,
			@Nonnull final String fallbackObjectName); @Nonnull T create(@Nullable String objectDescription);  }### Answer:
@Test public void testCreateReturnsExpectedClassInstanceWithoutParameters() { Parameterizable parameterizable = m_parameterizableFactory.create("dummy"); assertEquals(DummyParameterizable.class, parameterizable.getClass()); }
@Test public void testCreateReturnsExpectedClassInstanceWithParameters() { Parameterizable parameterizable = m_parameterizableFactory.create("dummy:blabla,2"); assertEquals(DummyParameterizable.class, parameterizable.getClass()); }
@Test public void testCreateFallsBackToDefaultDummyInitializableWithNullParameters() { Parameterizable parameterizable = m_parameterizableFactory.create(null); assertEquals(DummyParameterizable.class, parameterizable.getClass()); }
@Test public void testCreatedDummyInitializableIsInitialized() { final String parameters = "foobar"; DummyParameterizable parameterizable = (DummyParameterizable) m_parameterizableFactory.create("dummy:" + parameters); assertEquals(parameters, parameterizable.getParameters()); }
@Test public void testCreateFallsBackToDefaultDummyInitializableWithInvalidParameters() { Parameterizable parameterizable = m_parameterizableFactory.create("dummy:mustFail"); assertEquals(DummyParameterizable.class, parameterizable.getClass()); }