package com.rubiconproject.oss.kv.test.backends;
import java.util.List;
import com.rubiconproject.oss.kv.distributed.Context;
import com.rubiconproject.oss.kv.distributed.OperationStatus;
import com.rubiconproject.oss.kv.distributed.impl.DistributedKeyValueStoreClientImpl;
import com.rubiconproject.oss.kv.distributed.impl.PropertiesConfigurator;
import com.rubiconproject.oss.kv.test.KeyValueStoreBackendTestCase;
import com.rubiconproject.oss.kv.transcoder.GzippingTranscoder;
import com.rubiconproject.oss.kv.transcoder.StringTranscoder;
import com.rubiconproject.oss.kv.transcoder.Transcoder;
public class ValkyrieBackendTestCase extends KeyValueStoreBackendTestCase {
public void testBackend() throws Exception {
PropertiesConfigurator configurator = new PropertiesConfigurator();
configurator
.load(getClass()
.getResourceAsStream(
"/com/rubiconproject/oss/kv/test/resources/valkyrie-test.properties"));
DistributedKeyValueStoreClientImpl store = new DistributedKeyValueStoreClientImpl();
store.setConfigurator(configurator);
doTestBackend(store);
// test getContexts()
String key = "test.key";
SampleV v1 = new SampleV(10, "hello world", 12.23);
store.set(key, v1);
List<Context<SampleV>> contexts = store.getContexts(key, true, true, 400, 2000);
assertNotNull(contexts);
assertEquals(contexts.size(), 1);
SampleV v2 = contexts.get(0).getValue();
assertEquals(contexts.get(0).getResult().getStatus(),
OperationStatus.Success);
assertTrue(v1.equals(v2));
assertEquals(v1.compareTo(v2), 0);
// test getContexts with a transcoder
Transcoder transcoder = new GzippingTranscoder(new StringTranscoder());
store.set(key, "short string", transcoder);
List<Context<String>> stringContexts = store.getContexts(key,
transcoder, true, true, 400, 2000);
assertNotNull(stringContexts);
assertEquals(stringContexts.size(), 1);
String value = stringContexts.get(0).getValue();
assertEquals(contexts.get(0).getResult().getStatus(),
OperationStatus.Success);
assertEquals(value, "short string");
// clean up
store.delete(key);
stringContexts = store.getContexts(key, transcoder, true, true, 400, 2000);
assertNotNull(stringContexts);
assertEquals(stringContexts.size(), 1);
assertEquals(stringContexts.get(0).getResult().getStatus(),
OperationStatus.NullValue);
}
}