package edu.brown.workload.filters; import java.util.Iterator; import org.junit.Test; import org.voltdb.benchmark.tpcc.procedures.neworder; import org.voltdb.catalog.CatalogType; import org.voltdb.catalog.ProcParameter; import org.voltdb.catalog.Procedure; import edu.brown.workload.AbstractTraceElement; import edu.brown.workload.TransactionTrace; /** * @author pavlo */ public class TestProcParameterValueFilter extends AbstractTestFilter { private static final String TARGET_PROCEDURE = neworder.class.getSimpleName(); private static final int PARAM_IDX = 1; // D_ID private static final Object PARAM_VALUE = new Integer(5); private Procedure catalog_proc; private ProcParameter catalog_param; @Override protected void setUp() throws Exception { super.setUp(); this.catalog_proc = this.getProcedure(TARGET_PROCEDURE); this.catalog_param = this.getProcParameter(this.catalog_proc, PARAM_IDX); } /** * testFilter */ @Test public void testFilter() throws Exception { Filter filter = new ProcedureNameFilter(false).include(TARGET_PROCEDURE) .attach(new ProcParameterValueFilter().include(this.catalog_param, PARAM_VALUE)); 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 all of the array parameters have the same size TransactionTrace txn = (TransactionTrace)element; assertEquals(TARGET_PROCEDURE, txn.getCatalogItemName()); Object val = txn.getParam(PARAM_IDX); assertNotNull(val); assertEquals(txn.toString(), PARAM_VALUE, val); count++; } } // WHILE assert(count > 0); } }