### Question:
DefaultWroManagerFactory implements WroManagerFactory { public final WroManagerFactory getFactory() { return factory; } DefaultWroManagerFactory(final Properties properties); static DefaultWroManagerFactory create(final WroConfiguration configuration); static DefaultWroManagerFactory create(final ObjectFactory<WroConfiguration> configurationFactory); void onCachePeriodChanged(final long value); void onModelPeriodChanged(final long value); WroManager create(); void destroy(); final WroManagerFactory getFactory(); @Override String toString();  }### Answer:
@Test public void shouldCreateADefaultManagerFactory() { assertEquals(BaseWroManagerFactory.class, victim.getFactory().getClass()); }
@Test public void shouldCreateOverridenManagerFactory() { victim = new DefaultWroManagerFactory(new Properties()) { @Override protected WroManagerFactory newManagerFactory() { return new ConfigurableWroManagerFactory(); } }; assertEquals(ConfigurableWroManagerFactory.class, victim.getFactory().getClass()); }
@Test public void shouldLoadValidManagerClassConfiguredInProperties() { final Properties props = propsForWroManagerClassName(NoProcessorsWroManagerFactory.class.getName()); final DefaultWroManagerFactory victim = new DefaultWroManagerFactory(props); assertEquals(NoProcessorsWroManagerFactory.class, victim.getFactory().getClass()); }
@Test public void shouldCreateOverridenManagerFactoryWhenManagerClassPropertyIsMissing() { victim = new DefaultWroManagerFactory(new Properties()) { @Override protected WroManagerFactory newManagerFactory() { return new ConfigurableWroManagerFactory(); } }; assertEquals(ConfigurableWroManagerFactory.class, victim.getFactory().getClass()); }
@Test public void shouldCreateConfigurableManagerFactoryByDefault() { assertEquals(ConfigurableWroManagerFactory.class, victim.getFactory().getClass()); }