package org.rakam; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import org.rakam.analysis.ConfigManager; public class TestingConfigManager implements ConfigManager { Table<String, String, Object> table; public TestingConfigManager() { this.table = HashBasedTable.create(); } @Override public synchronized <T> T getConfig(String project, String configName, Class<T> clazz) { return (T) table.get(project, configName); } @Override public synchronized <T> void setConfig(String project, String configName, T clazz) { table.put(project, configName, clazz); } @Override public synchronized <T> T setConfigOnce(String project, String configName, T clazz) { Object o = table.row(project).putIfAbsent(configName, clazz); return o == null ? clazz : (T) o; } @Override public void clear() { table.clear(); } public Table<String, String, Object> getTable() { return table; } }