package io.airlift.discovery.client;
import com.google.inject.Injector;
import com.google.inject.Key;
import io.airlift.bootstrap.Bootstrap;
import io.airlift.bootstrap.LifeCycleManager;
import io.airlift.json.JsonModule;
import io.airlift.node.testing.TestingNodeModule;
import org.testng.annotations.Test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
public class TestDiscoveryModule
extends AbstractTestDiscoveryModule
{
protected TestDiscoveryModule()
{
super(new DiscoveryModule());
}
@Test
public void testExecutorShutdown()
throws Exception
{
Bootstrap app = new Bootstrap(
new JsonModule(),
new TestingNodeModule(),
new DiscoveryModule());
Injector injector = app
.strictConfig()
.doNotInitializeLogging()
.initialize();
ExecutorService executor = injector.getInstance(Key.get(ScheduledExecutorService.class, ForDiscoveryClient.class));
LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
assertFalse(executor.isShutdown());
lifeCycleManager.stop();
assertTrue(executor.isShutdown());
}
}