package com.twitter.common.zookeeper.guice; import java.util.Set; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.util.Providers; import org.easymock.EasyMock; import org.easymock.IMocksControl; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.twitter.common.application.ShutdownRegistry; import com.twitter.common.application.ShutdownRegistry.ShutdownRegistryImpl; import com.twitter.common.application.modules.LifecycleModule.ServiceRunner; import com.twitter.common.application.modules.LocalServiceRegistry; import com.twitter.common.zookeeper.ServerSet; import com.twitter.common.zookeeper.ZooKeeperClient; import com.twitter.common.zookeeper.testing.BaseZooKeeperTest; public class ServerSetModuleTest extends BaseZooKeeperTest { private IMocksControl control; private ServerSet serverSet; private ShutdownRegistry shutdownRegistry; private ZooKeeperClient zooKeeperClient; private LocalServiceRegistry localServiceRegistry; @Before public void mySetUp() { control = EasyMock.createControl(); serverSet = control.createMock(ServerSet.class); shutdownRegistry = new ShutdownRegistryImpl(); zooKeeperClient = createZkClient(); Set<ServiceRunner> localServices = ImmutableSet.of(); localServiceRegistry = new LocalServiceRegistry(Providers.of(localServices), shutdownRegistry); } @After public void verify() { control.verify(); } @Test public void testInjection() { control.replay(); Guice.createInjector(ImmutableList.of(ServerSetModule.builder().build(), new AbstractModule() { @Override protected void configure() { bind(ServerSet.class).toInstance(serverSet); bind(ZooKeeperClient.class).toInstance(zooKeeperClient); bind(ShutdownRegistry.class).toInstance(shutdownRegistry); bind(LocalServiceRegistry.class).toInstance(localServiceRegistry); } })); } }