package com.netflix.governator.lifecycle.resources; import com.google.inject.Injector; import com.google.inject.Scopes; import com.netflix.governator.LifecycleInjectorBuilderProvider; import com.netflix.governator.guice.LifecycleInjectorBuilder; import com.netflix.governator.lifecycle.LifecycleManager; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; /** * @author Alexey Krylov (lexx) * @since 19.02.13 */ @RunWith(DataProviderRunner.class) public class Jsr250SupportTest extends LifecycleInjectorBuilderProvider { @Test @UseDataProvider("builders") public void testJsr250EnabledService(LifecycleInjectorBuilder lifecycleInjectorBuilder) throws Exception { Injector injector = lifecycleInjectorBuilder.createInjector(); Jsr250EnabledService jsr250EnabledService = injector.getInstance(Jsr250EnabledService.class); injector.getInstance(LifecycleManager.class).start(); Assert.assertTrue(Scopes.isSingleton(injector.getBinding(jsr250EnabledService.getClass()))); Assert.assertTrue(jsr250EnabledService.isPostConstuctInvoked()); Assert.assertTrue(jsr250EnabledService.isResourceSet()); Jsr250EnabledService service = injector.getInstance(Jsr250EnabledService.class); Assert.assertEquals(jsr250EnabledService.getResource(), service.getResource()); injector.getInstance(LifecycleManager.class).close(); Assert.assertTrue(jsr250EnabledService.isPreDestroyInvoked()); } }