package com.facebook.infrastructure.service;
import com.facebook.infrastructure.ServerTest;
import com.facebook.infrastructure.config.DatabaseDescriptor;
import com.facebook.infrastructure.db.RangeVerbHandler;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.IteratorUtils;
import org.testng.annotations.Test;
import java.io.IOException;
import java.util.*;
public class CassandraServerTest extends ServerTest {
@Test
public void testCollation() {
Iterator<String> i1 = Arrays.asList("a", "c", "d").iterator();
Iterator<String> i2 = Arrays.asList("b", "e", "f", "g").iterator();
List<String> L = new ArrayList<String>();
CollectionUtils.addAll(L, IteratorUtils.collatedIterator(RangeVerbHandler.STRING_COMPARATOR, i1, i2));
List<String> L2 = Arrays.asList(new String[] {"a", "b", "c", "d", "e", "f", "g"});
assert L.equals(L2);
}
/*
TODO fix resetting server so this works
@Test
public void test_get_range_empty() throws IOException, TException {
CassandraServer server = new CassandraServer();
server.start();
assert CollectionUtils.EMPTY_COLLECTION.equals(server.get_range(DatabaseDescriptor.getTableName(), ""));
}
*/
/*
TODO also needs server reset
@Test
public void test_get_range() throws IOException, TException {
CassandraServer server = new CassandraServer();
server.start();
// TODO insert some data
try {
String last = null;
for (String key : server.get_range(DatabaseDescriptor.getTableName(), "key1")) {
if (last != null) {
assert last.compareTo(key) < 0;
}
last = key;
}
} finally {
server.shutdown();
}
}
*/
@Test
public void test_get_column() throws IOException, NotFoundException, InvalidRequestException {
CassandraServer server = new CassandraServer();
server.start();
try {
column_t c1 = new column_t("c1", "0", 0L);
column_t c2 = new column_t("c2", "0", 0L);
List<column_t> columns = new ArrayList<column_t>();
columns.add(c1);
columns.add(c2);
Map<String, List<column_t>> cfmap = new HashMap<String, List<column_t>>();
cfmap.put("Standard1", columns);
cfmap.put("Standard2", columns);
batch_mutation_t m = new batch_mutation_t("Table1", "key1", cfmap);
server.batch_insert_blocking(m);
column_t column;
column = server.get_column("Table1", "key1", "Standard1:c2");
assert column.value.equals("0");
column = server.get_column("Table1", "key1", "Standard2:c2");
assert column.value.equals("0");
ArrayList<column_t> column_ts = server.get_slice_strong("Table1", "key1", "Standard1", -1, -1);
assert column_ts.size() == 2;
} finally {
server.shutdown();
}
}
}