@Test public void shouldConsultUnsatisfiedDependencyHandlerOnFailingDependencyClasses() { // GIVEN KernelContext context = mock( KernelContext.class ); KernelExtensionFailureStrategy handler = mock( KernelExtensionFailureStrategy.class ); Dependencies dependencies = new Dependencies(); // that hasn't got anything. UninitializableKernelExtensionFactory extensionFactory = new UninitializableKernelExtensionFactory(); GlobalKernelExtensions extensions = new GlobalKernelExtensions( context, iterable( extensionFactory ), dependencies, handler ); // WHEN LifeSupport life = new LifeSupport(); life.add( extensions ); try { life.start(); // THEN verify( handler ).handle( eq( extensionFactory ), any( IllegalArgumentException.class ) ); } finally { life.shutdown(); } }
/** * Check that lifecycle status of extension is SHUTDOWN */ @Test public void shouldBeShutdown() { GraphDatabaseAPI graphdb = graphDb( 0 ); graphdb.shutdown(); assertEquals( LifecycleStatus.SHUTDOWN, graphdb.getDependencyResolver().resolveDependency( GlobalKernelExtensions .class ).resolveDependency( DummyExtension.class ).getStatus() ); } }
@Test public void shouldConsultUnsatisfiedDependencyHandlerOnMissingDependencies() { // GIVEN KernelContext context = mock( KernelContext.class ); KernelExtensionFailureStrategy handler = mock( KernelExtensionFailureStrategy.class ); Dependencies dependencies = new Dependencies(); // that hasn't got anything. TestingExtensionFactory extensionFactory = new TestingExtensionFactory(); GlobalKernelExtensions extensions = new GlobalKernelExtensions( context, iterable( extensionFactory ), dependencies, handler ); // WHEN LifeSupport life = new LifeSupport(); life.add( extensions ); try { life.start(); // THEN verify( handler ).handle( eq( extensionFactory ), any( UnsatisfiedDependencyException.class ) ); } finally { life.shutdown(); } }
/** * Check that lifecycle status of extension is STARTED */ @Test public void shouldBeStarted() { GraphDatabaseAPI graphdb = graphDb( 0 ); try { assertEquals( LifecycleStatus.STARTED, graphdb.getDependencyResolver().resolveDependency( GlobalKernelExtensions.class ).resolveDependency( DummyExtension.class ).getStatus() ); } finally { graphdb.shutdown(); } }
engineProviders = externalDependencies.executionEngines(); globalKernelExtensions = dependencies.satisfyDependency( new GlobalKernelExtensions( new SimpleKernelContext( storeLayout.storeDirectory(), databaseInfo, dependencies ), kernelExtensionFactories, dependencies, KernelExtensionFailureStrategies.fail() ) );
/** * Check that dependencies can be accessed */ @Test public void dependenciesCanBeRetrieved() { GraphDatabaseAPI graphdb = graphDb( 0 ); try { assertEquals( graphdb.getDependencyResolver().resolveDependency( Config.class ), graphdb.getDependencyResolver().resolveDependency( GlobalKernelExtensions.class ).resolveDependency( DummyExtension.class ).getDependencies().getConfig() ); assertEquals( graphdb.getDependencyResolver().resolveDependency( DatabaseManager.class ), graphdb.getDependencyResolver().resolveDependency( GlobalKernelExtensions.class ).resolveDependency( DummyExtension.class ).getDependencies().getDatabaseManager() ); } finally { graphdb.shutdown(); } }
engineProviders = externalDependencies.executionEngines(); globalKernelExtensions = dependencies.satisfyDependency( new GlobalKernelExtensions( new SimpleKernelContext( storeLayout.storeDirectory(), databaseInfo, dependencies ), kernelExtensionFactories, dependencies, KernelExtensionFailureStrategies.fail() ) );