package edu.brown.workload.filters;
import java.util.Iterator;
import org.junit.Test;
import org.voltdb.catalog.CatalogType;
import edu.brown.hstore.HStoreConstants;
import edu.brown.workload.AbstractTraceElement;
import edu.brown.workload.TransactionTrace;
/**
* @author pavlo
*/
public class TestBasePartitionTxnFilter extends AbstractTestFilter {
/**
* testFilter
*/
@Test
public void testFilter() throws Exception {
BasePartitionTxnFilter filter = new BasePartitionTxnFilter(p_estimator, BASE_PARTITION);
Iterator<TransactionTrace> it = workload.iterator(filter);
assertNotNull(it);
int count = 0;
while (it.hasNext()) {
AbstractTraceElement<? extends CatalogType> element = it.next();
if (element instanceof TransactionTrace) {
// Make sure that this txn's base partition is what we expect it to be
TransactionTrace txn = (TransactionTrace)element;
int base_partition = p_estimator.getBasePartition(txn.getCatalogItem(catalog_db), txn.getParams(), true);
assert(base_partition != HStoreConstants.NULL_PARTITION_ID);
assertEquals(BASE_PARTITION, base_partition);
count++;
}
} // WHILE
assert(count > 0);
}
}