package org.zalando.baigan.context;
import com.google.common.collect.ImmutableSet;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.zalando.baigan.model.Condition;
import org.zalando.baigan.service.ConditionsProcessor;
import org.zalando.baigan.service.ConfigurationRepository;
import javax.annotation.Nonnull;
import java.util.Optional;
import java.util.Set;
/**
* @author mchand
*/
@Configuration
public class SpringTestContext {
@Bean
public ConditionsProcessor ConditionsProcessor() {
return new ConditionsProcessor();
}
@Bean
public ConfigurationRepository configurationRepository() {
return new ConfigurationRepository() {
final static String KEY = "test.config.enable.xyz.feature";
public void put(@Nonnull String key, @Nonnull String value) {
}
@Nonnull
public Optional<org.zalando.baigan.model.Configuration> get(@Nonnull String key) {
if (KEY.equalsIgnoreCase(key)) {
return Optional.of(mockConfiguration(key));
} else {
return Optional.empty();
}
}
private org.zalando.baigan.model.Configuration<Boolean> mockConfiguration(
final String key) {
final Set<Condition<Boolean>> conditions = ImmutableSet.of();
return new org.zalando.baigan.model.Configuration<>(
key, "This is a test configuration object.", conditions,
Boolean.FALSE);
}
};
}
}