Package edu.brown.designer.partitioners.plan

Source Code of edu.brown.designer.partitioners.plan.TestPartitionEntry

package edu.brown.designer.partitioners.plan;

import org.json.JSONObject;
import org.junit.Test;
import org.voltdb.benchmark.tpcc.procedures.neworder;
import org.voltdb.catalog.Column;
import org.voltdb.catalog.ProcParameter;
import org.voltdb.catalog.Procedure;
import org.voltdb.catalog.Table;
import org.voltdb.types.PartitionMethodType;

import edu.brown.BaseTestCase;
import edu.brown.catalog.special.MultiProcParameter;
import edu.brown.utils.ProjectType;

public class TestPartitionEntry extends BaseTestCase {

    @Override
    protected void setUp() throws Exception {
        super.setUp(ProjectType.TPCC);
    }
   
    /**
     * testTableEntrySerialization
     */
    @Test
    public void testTableEntrySerialization() throws Exception {
        Table catalog_tbl = this.getTable("DISTRICT");
        Column catalog_col = this.getColumn(catalog_tbl, "D_W_ID");
       
        Table parent_tbl = this.getTable("WAREHOUSE");
        Column parent_col = this.getColumn(parent_tbl, "W_ID");
       
        TableEntry entries[] = {
            new TableEntry(PartitionMethodType.REPLICATION, null, null, null),
            new TableEntry(PartitionMethodType.HASH, catalog_col, null, null),
            new TableEntry(PartitionMethodType.MAP, catalog_col, parent_tbl, parent_col),
            new TableEntry(PartitionMethodType.NONE, null, null, null),
        };
       
        for (TableEntry te : entries) {
            assertNotNull(te);
            String json = te.toJSONString();
            assertNotNull(json);
            assertFalse(json.isEmpty());
           
            JSONObject jsonObject = new JSONObject(json);
            TableEntry copy = new TableEntry();
            copy.fromJSON(jsonObject, catalog_db);
           
            assertEquals(te.getAttribute(), copy.getAttribute());
            assertEquals(te.getMethod(), copy.getMethod());
            assertEquals(te.getParent(), copy.getParent());
            assertEquals(te.getParentAttribute(), copy.getParentAttribute());
           
//            System.err.println(JSONUtil.format(json) + "\n");
        } // FOR
    }
   
    /**
     * testProcedureEntrySerialization
     */
    @Test
    public void testProcedureEntrySerialization() throws Exception {
        Procedure catalog_proc = this.getProcedure(neworder.class);
        ProcParameter catalog_params[] = {
            this.getProcParameter(catalog_proc, 0),
            this.getProcParameter(catalog_proc, 1),
        };
       
        ProcedureEntry entries[] = {
            new ProcedureEntry(PartitionMethodType.HASH, catalog_params[0], null),
            new ProcedureEntry(PartitionMethodType.HASH, catalog_params[0], true),
            new ProcedureEntry(PartitionMethodType.HASH, MultiProcParameter.get(catalog_params), false),
            new ProcedureEntry(PartitionMethodType.NONE, null, null),
        };
       
        for (ProcedureEntry te : entries) {
            assertNotNull(te);
            String json = te.toJSONString();
            assertNotNull(json);
            assertFalse(json.isEmpty());
           
            JSONObject jsonObject = new JSONObject(json);
            ProcedureEntry copy = new ProcedureEntry();
            copy.fromJSON(jsonObject, catalog_db);
           
            assertEquals(te.getAttribute(), copy.getAttribute());
            assertEquals(te.getMethod(), copy.getMethod());
            assertEquals(te.isSinglePartition(), copy.isSinglePartition());
           
//            System.err.println(JSONUtil.format(json) + "\n");
        } // FOR
    }
}
TOP

Related Classes of edu.brown.designer.partitioners.plan.TestPartitionEntry

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.