package org.togglz.core.activation; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import org.junit.Test; import org.togglz.core.Feature; import org.togglz.core.repository.FeatureState; import org.togglz.core.user.FeatureUser; import org.togglz.core.user.SimpleFeatureUser; public class UsernameActivationStrategyTest { private final UsernameActivationStrategy strategy = new UsernameActivationStrategy(); @Test public void shouldReturnFalseForEmptyUserlist() { FeatureUser user = new SimpleFeatureUser("ck", false); FeatureState state = new FeatureState(MyFeature.FEATURE) .enable() .setStrategyId(UsernameActivationStrategy.ID); boolean active = strategy.isActive(state, user); assertEquals(false, active); } @Test public void shouldReturnFalseForUnknownUser() { FeatureUser user = null; FeatureState state = new FeatureState(MyFeature.FEATURE) .enable() .setStrategyId(UsernameActivationStrategy.ID) .setParameter(UsernameActivationStrategy.PARAM_USERS, "person1,ck,person2"); boolean active = strategy.isActive(state, user); assertEquals(false, active); } @Test public void shouldReturnFalseForDifferentUser() { FeatureUser user = new SimpleFeatureUser("john", false); FeatureState state = new FeatureState(MyFeature.FEATURE) .enable() .setStrategyId(UsernameActivationStrategy.ID) .setParameter(UsernameActivationStrategy.PARAM_USERS, "person1,ck,person2"); boolean active = strategy.isActive(state, user); assertEquals(false, active); } @Test public void shouldReturnTrueForCorrectUser() { FeatureUser user = new SimpleFeatureUser("ck", false); FeatureState state = new FeatureState(MyFeature.FEATURE) .enable() .setStrategyId(UsernameActivationStrategy.ID) .setParameter(UsernameActivationStrategy.PARAM_USERS, "person1,ck,person2"); boolean active = strategy.isActive(state, user); assertEquals(true, active); } @Test public void shouldReturnCorrectParameterList() { Parameter[] parameters = strategy.getParameters(); assertThat(parameters, notNullValue()); assertThat(parameters.length, is(1)); Parameter userParam = parameters[0]; assertThat(userParam, notNullValue()); assertThat(userParam.getName(), is(UsernameActivationStrategy.PARAM_USERS)); } private enum MyFeature implements Feature { FEATURE; } }