Package org.togglz.appengine.activation

Source Code of org.togglz.appengine.activation.ApplicationVersionActivationStrategyTest

package org.togglz.appengine.activation;

import com.google.appengine.api.utils.SystemProperty;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.togglz.core.Feature;
import org.togglz.core.repository.FeatureState;
import org.togglz.core.user.SimpleFeatureUser;

public class ApplicationVersionActivationStrategyTest {

    private static final String JOHN = "john";
    private final LocalServiceTestHelper helper = new LocalServiceTestHelper();
    private static final String CURRENT_VERSION = "beta.141242134213";

    @Before
    public void setup() {
        SystemProperty.applicationVersion.set(CURRENT_VERSION);
        helper.setUp();
    }

    @Test
    public void shouldReturnFalseForEmptyVersion() {
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState("");
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertFalse(active);
    }

    @Test
    public void shouldReturnFalseForNullVersion() {
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState(null);
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertFalse(active);
    }

    @Test
    public void shouldReturnFalseWhenCurrentVersionCannotBeResolved() {
        SystemProperty.applicationVersion.set("");
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState(CURRENT_VERSION);
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertFalse(active);
    }

    @Test
    public void shouldReturnTrueWhenMatchesServerCurrentVersion() {
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState(CURRENT_VERSION);
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertTrue(active);
    }

    @Test
    public void shouldReturnTrueWhenAtLeastOneOfTheVersionsMatchServerCurrentVersion() {
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState(CURRENT_VERSION + ",alpha,dev,uat");
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertTrue(active);
    }

    @Test
    public void shouldReturnFalseWhenNoneOfTheVersionsMatchTheServerCurrentVersion() {
        ApplicationVersionActivationStrategy strategy = new ApplicationVersionActivationStrategy();
        FeatureState state = aVersionState("test,alpha,dev,uat,rc1");
        boolean active = strategy.isActive(state, aFeatureUser(JOHN));
        Assert.assertFalse(active);
    }

    private FeatureState aVersionState(String lang) {
        return new FeatureState(ScriptFeature.FEATURE)
            .setStrategyId(ApplicationVersionActivationStrategy.ID)
            .setParameter(ApplicationVersionActivationStrategy.PARAM_VERSIONS, lang);
    }

    private SimpleFeatureUser aFeatureUser(String string) {
        return new SimpleFeatureUser(string);
    }

    private enum ScriptFeature implements Feature {
        FEATURE;
    }

}
TOP

Related Classes of org.togglz.appengine.activation.ApplicationVersionActivationStrategyTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.