package io.teknek.intravert.daemon;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import io.teknek.intravert.action.ActionFactory;
import io.teknek.intravert.client.Client;
import io.teknek.intravert.model.Constants;
import io.teknek.intravert.model.Operation;
import io.teknek.intravert.model.Request;
import io.teknek.intravert.model.Response;
import io.teknek.nit.NitDesc;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.KSMetaData;
import org.apache.cassandra.config.Schema;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;
import org.junit.Test;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
public class UpsertTest extends BaseIntravertTest {
@Test
public void createApplicationFilter() throws JsonGenerationException, JsonMappingException, IllegalStateException, UnsupportedEncodingException, IOException, RuntimeException{
Request request = new Request();
request.getOperations().add(new Operation().withId("0").withType(ActionFactory.CREATE_KEYSPACE).withArguments(
new ImmutableMap.Builder<String, Object>()
.put("name", "example")
.put("replication", 1)
.put("ignoreIfNotExists", true).build()));
request.getOperations().add(new Operation().withId("1").withType(ActionFactory.CREATE_COLUMN_FAMILY).withArguments(
new ImmutableMap.Builder<String, Object>()
.put("keyspace", "example")
.put("columnFamily", "upsert")
.put("ignoreIfNotExists", true).build()));
request.getOperations().add(new Operation()
.withId("2").withType(ActionFactory.SET_KEYSPACE).withArguments(
new ImmutableMap.Builder<String, Object>().put("name", "example").build()));
request.getOperations().add(new Operation()
.withId("3").withType(ActionFactory.UPSERT).withArguments(
new ImmutableMap.Builder<String, Object>().put("rowkey", "ecapriolo")
.put("column","firstname")
.put("value","edward")
.put("keyspace","example")
.put("columnFamily", "upsert").build()));
Client cl = new Client();
ObjectMapper om = new ObjectMapper();
om.configure(Feature.INDENT_OUTPUT,true);
System.out.println(om.writeValueAsString(request));
Response response = cl.post("http://127.0.0.1:7654", request);
List<Map> results = (List<Map>) response.getResults().get("1");
Assert.assertEquals(new ImmutableMap.Builder<String, Object>().put("result", "ok").build(), results.get(0));
}
}
/*
String keyspace = (String) operation.getArguments().get("keyspace");
String columnFamily = (String) operation.getArguments().get("columnfamily");
*/