All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.netflix.astyanax.cql.test.StaticColumnFamilyTests Maven / Gradle / Ivy
package com.netflix.astyanax.cql.test;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.netflix.astyanax.ColumnListMutation;
import com.netflix.astyanax.Keyspace;
import com.netflix.astyanax.MutationBatch;
import com.netflix.astyanax.model.Column;
import com.netflix.astyanax.model.ColumnFamily;
import com.netflix.astyanax.model.ColumnList;
import com.netflix.astyanax.model.Rows;
import com.netflix.astyanax.serializers.StringSerializer;
public class StaticColumnFamilyTests extends KeyspaceTests {
private static ColumnFamily CF_ACCOUNTS = new ColumnFamily("accounts", StringSerializer.get(), StringSerializer.get());
@BeforeClass
public static void init() throws Exception {
initContext();
keyspace.prepareQuery(CF_ACCOUNTS)
.withCql("CREATE TABLE astyanaxunittests.accounts (userid text PRIMARY KEY, user text, pswd text)")
.execute();
CF_ACCOUNTS.describe(keyspace);
}
@AfterClass
public static void tearDown() throws Exception {
keyspace.dropColumnFamily(CF_ACCOUNTS);
}
@Test
public void testReadWriteOpsWithStaticNamedColumns() throws Exception {
populateRowsForAccountsTable(keyspace);
Thread.sleep(200);
boolean rowDeleted = false;
performSimpleRowQuery(rowDeleted);
performSimpleRowQueryWithColumnCollection(rowDeleted);
performSimpleRowSingleColumnQuery(rowDeleted);
performRowSliceQueryWithAllColumns(rowDeleted);
performRowSliceQueryWithColumnSlice(rowDeleted);
deleteRowsForAccountsTable(keyspace);
Thread.sleep(200);
rowDeleted = true;
performSimpleRowQuery(rowDeleted);
performSimpleRowQueryWithColumnCollection(rowDeleted);
performSimpleRowSingleColumnQuery(rowDeleted);
performRowSliceQueryWithAllColumns(rowDeleted);
performRowSliceQueryWithColumnSlice(rowDeleted);
}
private void performSimpleRowQuery(boolean rowDeleted) throws Exception {
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
String key = Character.toString(keyName);
performSimpleRowQueryForRow(key, rowDeleted, key);
}
}
private void performSimpleRowQueryForRow(String rowKey, boolean rowDeleted, String expectedChar) throws Exception {
ColumnList result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("user");
Assert.assertEquals("user" + expectedChar, col.getStringValue());
col = result.getColumnByName("pswd");
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
}
private void performSimpleRowQueryWithColumnCollection(boolean rowDeleted) throws Exception {
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
String key = Character.toString(keyName);
performSimpleRowQueryWithColumnCollectionForRow(key, rowDeleted, key);
}
}
private void performSimpleRowQueryWithColumnCollectionForRow(String rowKey, boolean rowDeleted, String expectedChar) throws Exception {
ColumnList result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).withColumnSlice("user", "pswd").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("user");
Assert.assertEquals("user" + expectedChar, col.getStringValue());
col = result.getColumnByName("pswd");
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).withColumnSlice("user").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("user");
Assert.assertEquals("user" + expectedChar, col.getStringValue());
}
result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).withColumnSlice("pswd").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("pswd");
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
List cols = new ArrayList();
cols.add("user"); cols.add("pswd");
result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).withColumnSlice(cols).execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("user");
Assert.assertEquals("user" + expectedChar, col.getStringValue());
col = result.getColumnByName("pswd");
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
cols.remove("user");
result = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).withColumnSlice(cols).execute().getResult();
if (rowDeleted) {
Assert.assertTrue(result.isEmpty());
} else {
Assert.assertFalse(result.isEmpty());
Column col = result.getColumnByName("pswd");
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
}
private void performSimpleRowSingleColumnQuery(boolean rowDeleted) throws Exception {
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
String key = Character.toString(keyName);
performSimpleRowSingleColumnQueryForRow(key, rowDeleted, key);
}
}
private void performSimpleRowSingleColumnQueryForRow(String rowKey, boolean rowDeleted, String expectedChar) throws Exception {
Column col = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).getColumn("user").execute().getResult();
if (rowDeleted) {
Assert.assertNull(col);
} else {
Assert.assertTrue(col.hasValue());
Assert.assertEquals("user" + expectedChar, col.getStringValue());
}
col = keyspace.prepareQuery(CF_ACCOUNTS).getRow(rowKey).getColumn("pswd").execute().getResult();
if (rowDeleted) {
Assert.assertNull(col);
} else {
Assert.assertTrue(col.hasValue());
Assert.assertEquals("pswd" + expectedChar, col.getStringValue());
}
}
private void performRowSliceQueryWithAllColumns(boolean rowDeleted) throws Exception {
List keys = new ArrayList();
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
keys.add(Character.toString(keyName));
}
int index = 0;
Rows rows = keyspace.prepareQuery(CF_ACCOUNTS).getRowSlice(keys).execute().getResult();
if (rowDeleted) {
Assert.assertTrue(rows.isEmpty());
} else {
Assert.assertFalse(rows.isEmpty());
for (com.netflix.astyanax.model.Row row : rows) {
Assert.assertEquals(keys.get(index),row.getKey());
ColumnList cols = row.getColumns();
Assert.assertFalse(cols.isEmpty());
Column col = cols.getColumnByName("user");
Assert.assertEquals("user" + keys.get(index), col.getStringValue());
col = cols.getColumnByName("pswd");
Assert.assertEquals("pswd" + keys.get(index), col.getStringValue());
index++;
}
}
}
private void performRowSliceQueryWithColumnSlice(boolean rowDeleted) throws Exception {
List keys = new ArrayList();
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
keys.add(Character.toString(keyName));
}
int index = 0;
Rows rows = keyspace.prepareQuery(CF_ACCOUNTS).getRowSlice(keys).withColumnSlice("user", "pswd").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(rows.isEmpty());
} else {
Assert.assertFalse(rows.isEmpty());
for (com.netflix.astyanax.model.Row row : rows) {
Assert.assertEquals(keys.get(index),row.getKey());
ColumnList cols = row.getColumns();
Assert.assertFalse(cols.isEmpty());
Column col = cols.getColumnByName("user");
Assert.assertEquals("user" + keys.get(index), col.getStringValue());
col = cols.getColumnByName("pswd");
Assert.assertEquals("pswd" + keys.get(index), col.getStringValue());
index++;
}
}
index=0;
rows = keyspace.prepareQuery(CF_ACCOUNTS).getRowSlice(keys).withColumnSlice("user").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(rows.isEmpty());
} else {
Assert.assertFalse(rows.isEmpty());
for (com.netflix.astyanax.model.Row row : rows) {
Assert.assertEquals(keys.get(index),row.getKey());
ColumnList cols = row.getColumns();
Assert.assertFalse(cols.isEmpty());
Column col = cols.getColumnByName("user");
Assert.assertEquals("user" + keys.get(index), col.getStringValue());
index++;
}
}
index=0;
rows = keyspace.prepareQuery(CF_ACCOUNTS).getRowSlice(keys).withColumnSlice("pswd").execute().getResult();
if (rowDeleted) {
Assert.assertTrue(rows.isEmpty());
} else {
Assert.assertFalse(rows.isEmpty());
for (com.netflix.astyanax.model.Row row : rows) {
Assert.assertEquals(keys.get(index),row.getKey());
ColumnList cols = row.getColumns();
Assert.assertFalse(cols.isEmpty());
Column col = cols.getColumnByName("pswd");
Assert.assertEquals("pswd" + keys.get(index), col.getStringValue());
index++;
}
}
}
public static void populateRowsForAccountsTable(Keyspace keyspace) throws Exception {
MutationBatch m = keyspace.prepareMutationBatch();
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
String character = Character.toString(keyName);
ColumnListMutation colMutation = m.withRow(CF_ACCOUNTS, character);
colMutation.putColumn("user", "user" + character).putColumn("pswd", "pswd" + character);
m.execute();
m.discardMutations();
}
}
public static void deleteRowsForAccountsTable(Keyspace keyspace) throws Exception {
for (char keyName = 'A'; keyName <= 'Z'; keyName++) {
MutationBatch m = keyspace.prepareMutationBatch();
String rowKey = Character.toString(keyName);
m.withRow(CF_ACCOUNTS, rowKey).delete();
m.execute();
m.discardMutations();
}
}
}