package org.togglz.core.repository; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import java.util.Arrays; import org.junit.Test; import org.togglz.core.Feature; import org.togglz.core.activation.UsernameActivationStrategy; public class FeatureStateTest { @Test public void testSimpleFeatureState() { // initial state FeatureState state = new FeatureState(Features.FEATURE1); assertThat(state.isEnabled(), is(false)); assertThat(state.getParameterNames(), empty()); // enable a feature state.enable(); assertThat(state.isEnabled(), is(true)); // add a parameter state.setParameter("foo", "bar"); assertThat(state.getParameterNames().size(), is(1)); assertThat(state.getParameter("foo"), is("bar")); // remove the parameter state.setParameter("foo", null); assertThat(state.getParameterNames().size(), is(0)); } @Test public void testOldUsersApiHandling() { // initial state FeatureState state = new FeatureState(Features.FEATURE1, true, Arrays.asList("ck", "admin")); assertThat(state.isEnabled(), is(true)); assertThat(state.getParameterNames(), contains(UsernameActivationStrategy.PARAM_USERS)); assertThat(state.getParameter(UsernameActivationStrategy.PARAM_USERS), is("ck,admin")); assertThat(state.getUsers(), contains("ck", "admin")); // add some other user state.addUser("tester"); assertThat(state.getParameter(UsernameActivationStrategy.PARAM_USERS), is("ck,admin,tester")); assertThat(state.getUsers(), contains("ck", "admin", "tester")); } private static enum Features implements Feature { FEATURE1; } }