package org.togglz.hazelcast;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.junit.Test;
import org.togglz.core.Feature;
import org.togglz.core.repository.FeatureState;
import org.togglz.core.repository.StateRepository;
import org.togglz.core.util.NamedFeature;
public class HazelcastStateRepositoryTest {
private StateRepository stateRepository = HazelcastStateRepository.newBuilder().mapName("togglzMap").build();
@Test
public void testSetFeatureStateNotExisitingInMap() {
final Feature feature = new NamedFeature("SAMPLE_FEATURE");
final FeatureState featureState = new FeatureState(feature, true);
stateRepository.setFeatureState(featureState);
final FeatureState storedFeatureState = stateRepository.getFeatureState(feature);
assertTrue(EqualsBuilder.reflectionEquals(featureState, storedFeatureState, true));
}
@Test
public void testSetFeatureStateExistingInMap() {
final Feature feature = new NamedFeature("SAMPLE_FEATURE");
final FeatureState featureState = new FeatureState(feature, true);
stateRepository.setFeatureState(featureState);
FeatureState storedFeatureState = stateRepository.getFeatureState(feature);
assertTrue(storedFeatureState.isEnabled());
assertTrue(EqualsBuilder.reflectionEquals(featureState, storedFeatureState, true));
featureState.setEnabled(false);
stateRepository.setFeatureState(featureState);
storedFeatureState = stateRepository.getFeatureState(feature);
assertFalse(storedFeatureState.isEnabled());
assertTrue(EqualsBuilder.reflectionEquals(featureState, storedFeatureState, true));
}
}