/* * JBoss, Home of Professional Open Source. * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. Some portions may be licensed * to Red Hat, Inc. under one or more contributor license agreements. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. */ package org.teiid.translator.hbase; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.apache.phoenix.schema.PColumn; import org.apache.phoenix.schema.PDataType; import org.apache.phoenix.schema.PTable; import org.junit.Test; import org.teiid.translator.hbase.phoenix.PColumnTeiidImpl; import org.teiid.translator.hbase.phoenix.PNameTeiidImpl; import org.teiid.translator.hbase.phoenix.PTableTeiidImpl; import org.teiid.translator.hbase.phoenix.PhoenixUtils; public class TestPhoenixDriver { @Test public void testHBaseTableMapping() { String expect = "CREATE TABLE IF NOT EXISTS \"Customer\" (\"Row_Id\" VARCHAR PRIMARY KEY, \"customer\".\"name\" VARCHAR, \"customer\".\"city\" VARCHAR, \"sales\".\"product\" VARCHAR, \"sales\".\"amount\" VARCHAR)"; List<PColumn> columns = new ArrayList<PColumn>(); PColumn pk = new PColumnTeiidImpl(PNameTeiidImpl.makePName("Row_Id"), null, PDataType.VARCHAR); PColumn name = new PColumnTeiidImpl(PNameTeiidImpl.makePName("name"), PNameTeiidImpl.makePName("customer"), PDataType.VARCHAR); PColumn city = new PColumnTeiidImpl(PNameTeiidImpl.makePName("city"), PNameTeiidImpl.makePName("customer"), PDataType.VARCHAR); PColumn product = new PColumnTeiidImpl(PNameTeiidImpl.makePName("product"), PNameTeiidImpl.makePName("sales"), PDataType.VARCHAR); PColumn amount = new PColumnTeiidImpl(PNameTeiidImpl.makePName("amount"), PNameTeiidImpl.makePName("sales"), PDataType.VARCHAR); columns.add(pk); columns.add(name); columns.add(city); columns.add(product); columns.add(amount); PTable ptable = PTableTeiidImpl.makeTable(PNameTeiidImpl.makePName("Customer"), columns); assertEquals(expect, PhoenixUtils.hbaseTableMappingDDL(ptable)); } @Test public void testDataTypes() { assertEquals("VARCHAR", PDataType.VARCHAR.getSqlTypeName()); assertEquals("VARBINARY", PDataType.VARBINARY.getSqlTypeName()); assertEquals("BOOLEAN", PDataType.BOOLEAN.getSqlTypeName()); assertEquals("TINYINT", PDataType.TINYINT.getSqlTypeName()); assertEquals("SMALLINT", PDataType.SMALLINT.getSqlTypeName()); assertEquals("INTEGER", PDataType.INTEGER.getSqlTypeName()); assertEquals("BIGINT", PDataType.LONG.getSqlTypeName()); assertEquals("FLOAT", PDataType.FLOAT.getSqlTypeName()); assertEquals("DOUBLE", PDataType.DOUBLE.getSqlTypeName()); assertEquals("DECIMAL", PDataType.DECIMAL.getSqlTypeName()); assertEquals("DATE", PDataType.DATE.getSqlTypeName()); assertEquals("TIME", PDataType.TIME.getSqlTypeName()); assertEquals("TIMESTAMP", PDataType.TIMESTAMP.getSqlTypeName()); } }