package org.togglz.core.context;
import static org.junit.Assert.assertNotNull;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.togglz.core.Feature;
import org.togglz.core.manager.FeatureManager;
import org.togglz.core.manager.FeatureManagerBuilder;
import org.togglz.core.repository.mem.InMemoryStateRepository;
import org.togglz.core.user.NoOpUserProvider;
public class ThreadLocalFeatureManagerProviderTest {
/**
* Binds a FeatureManager to the thread before starting each test
*/
@Before
public void before() {
FeatureManager featureManager = new FeatureManagerBuilder()
.featureEnum(MyFeature.class)
.stateRepository(new InMemoryStateRepository())
.userProvider(new NoOpUserProvider())
.build();
ThreadLocalFeatureManagerProvider.bind(featureManager);
}
/**
* Release the FeatureManager after it
*/
@After
public void after() {
ThreadLocalFeatureManagerProvider.release();
}
/**
* The first test requires a FeatureManager
*/
@Test
public void firstTest() {
FeatureManager featureManager = FeatureContext.getFeatureManager();
assertNotNull(featureManager);
}
/**
* The second test also
*/
@Test
public void secondTest() {
FeatureManager featureManager = FeatureContext.getFeatureManager();
assertNotNull(featureManager);
}
private static enum MyFeature implements Feature {
FEATURE1,
FEATURE2;
}
}