public static class ResourceScopablePrototype {
}
public void testDefault() {
LifecycleManagersRegistry factoryRegistry = new LifecycleManagersRegistry();
// by default providers are always singletons
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(ProviderA.class).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(ProviderScopeablePrototype.class).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(ProviderScopeableSingleton.class).getClass());
// by default providers are always singletons
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ProviderA()).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ProviderScopeablePrototype()).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ProviderScopeableSingleton()).getClass());
// by default resources are prototypes, when added as classes
assertEquals(PrototypeObjectFactory.class, factoryRegistry
.getObjectFactory(ResourceA.class).getClass());
assertEquals(PrototypeObjectFactory.class, factoryRegistry
.getObjectFactory(ResourceScopableSingleton.class).getClass());
assertEquals(PrototypeObjectFactory.class, factoryRegistry
.getObjectFactory(ResourceScopablePrototype.class).getClass());
// by default resources are singletons, when added as instances
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ResourceA()).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ResourceScopableSingleton()).getClass());
assertEquals(SingletonObjectFactory.class, factoryRegistry
.getObjectFactory(new ResourceScopablePrototype()).getClass());
}