http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/metadata/converter/ThriftWrapperSchemaConverterImplTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/metadata/converter/ThriftWrapperSchemaConverterImplTest.java b/core/src/test/java/org/apache/carbondata/core/metadata/converter/ThriftWrapperSchemaConverterImplTest.java new file mode 100644 index 0000000..7709042 --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/metadata/converter/ThriftWrapperSchemaConverterImplTest.java @@ -0,0 +1,1846 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.metadata.converter; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.carbondata.core.metadata.datatype.DataType; +import org.apache.carbondata.core.metadata.encoder.Encoding; +import org.apache.carbondata.core.metadata.schema.SchemaEvolution; +import org.apache.carbondata.core.metadata.schema.SchemaEvolutionEntry; +import org.apache.carbondata.core.metadata.schema.table.TableInfo; +import org.apache.carbondata.core.metadata.schema.table.TableSchema; +import org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema; + +import mockit.Mock; +import mockit.MockUp; +import org.junit.BeforeClass; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class ThriftWrapperSchemaConverterImplTest { + + private static ThriftWrapperSchemaConverterImpl thriftWrapperSchemaConverter = null; + private static org.apache.carbondata.format.SchemaEvolutionEntry schemaEvolEntry = null; + private static org.apache.carbondata.format.ColumnSchema thriftColumnSchema = null; + private static List<ColumnSchema> columnSchemas = null; + private static List<SchemaEvolutionEntry> schemaEvolutionEntries = null; + private static List<org.apache.carbondata.format.ColumnSchema> thriftColumnSchemas = null; + private static List<org.apache.carbondata.format.SchemaEvolutionEntry> + thriftSchemaEvolutionEntries = null; + private static org.apache.carbondata.format.SchemaEvolution schemaEvol = null; + private static List<org.apache.carbondata.format.Encoding> encoders = null; + private static List<Encoding> encodings = null; + private static Map columnPropertyMap = null; + private static org.apache.carbondata.format.TableSchema tabSchema = null; + + @BeforeClass public static void setUp() { + + thriftWrapperSchemaConverter = new ThriftWrapperSchemaConverterImpl(); + schemaEvolEntry = new org.apache.carbondata.format.SchemaEvolutionEntry(); + schemaEvolutionEntries = new ArrayList(); + schemaEvolutionEntries.add(new SchemaEvolutionEntry()); + columnSchemas = new ArrayList(); + columnSchemas.add(new ColumnSchema()); + encodings = new ArrayList<>(); + encodings.add(Encoding.INVERTED_INDEX); + encodings.add(Encoding.DELTA); + encodings.add(Encoding.BIT_PACKED); + encodings.add(Encoding.DICTIONARY); + encodings.add(Encoding.RLE); + encodings.add(Encoding.DIRECT_DICTIONARY); + encoders = new ArrayList<org.apache.carbondata.format.Encoding>(); + encoders.add(org.apache.carbondata.format.Encoding.INVERTED_INDEX); + encoders.add(org.apache.carbondata.format.Encoding.DELTA); + encoders.add(org.apache.carbondata.format.Encoding.BIT_PACKED); + encoders.add(org.apache.carbondata.format.Encoding.DICTIONARY); + encoders.add(org.apache.carbondata.format.Encoding.RLE); + encoders.add(org.apache.carbondata.format.Encoding.DIRECT_DICTIONARY); + + columnPropertyMap = new HashMap<String, String>(); + columnPropertyMap.put("property", "value"); + thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRING, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + thriftColumnSchemas = new ArrayList<org.apache.carbondata.format.ColumnSchema>(); + thriftColumnSchemas.add(thriftColumnSchema); + thriftSchemaEvolutionEntries = new ArrayList<>(); + thriftSchemaEvolutionEntries.add(schemaEvolEntry); + schemaEvol = new org.apache.carbondata.format.SchemaEvolution(thriftSchemaEvolutionEntries); + + new MockUp<SchemaEvolution>() { + @Mock public List<SchemaEvolutionEntry> getSchemaEvolutionEntryList() { + return schemaEvolutionEntries; + } + }; + + new MockUp<org.apache.carbondata.format.SchemaEvolutionEntry>() { + @Mock public org.apache.carbondata.format.SchemaEvolutionEntry setAdded( + List<org.apache.carbondata.format.ColumnSchema> added) { + return schemaEvolEntry; + } + + @Mock public org.apache.carbondata.format.SchemaEvolutionEntry setRemoved( + List<org.apache.carbondata.format.ColumnSchema> removed) { + return schemaEvolEntry; + } + + @Mock public long getTime_stamp() { + long time = 1112745600000L; + return time; + } + + @Mock public List<org.apache.carbondata.format.ColumnSchema> getAdded() { + return thriftColumnSchemas; + } + + @Mock public List<org.apache.carbondata.format.ColumnSchema> getRemoved() { + return thriftColumnSchemas; + } + + }; + + new MockUp<org.apache.carbondata.format.ColumnSchema>() { + @Mock + public org.apache.carbondata.format.ColumnSchema setColumn_group_id(int column_group_id) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setScale(int scale) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setPrecision(int precision) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setNum_child(int num_child) { + return thriftColumnSchema; + } + + @Mock + public org.apache.carbondata.format.ColumnSchema setDefault_value(byte[] default_value) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setColumnProperties( + Map<String, String> columnProperties) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setInvisible(boolean invisible) { + return thriftColumnSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setColumnReferenceId( + String columnReferenceId) { + return thriftColumnSchema; + } + + @Mock public String getColumn_id() { + return "1"; + } + + @Mock public String getColumn_name() { + return "columnName"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimension() { + return true; + } + + @Mock public List<org.apache.carbondata.format.Encoding> getEncoders() { + return encoders; + } + + @Mock public int getNum_child() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getColumn_group_id() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public byte[] getDefault_value() { + return new byte[] { 1, 2 }; + } + + @Mock public String getAggregate_function() { + return ""; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + + }; + + final Map mapTableProperties = new HashMap<String, String>(); + tabSchema = new org.apache.carbondata.format.TableSchema(); + + new MockUp<org.apache.carbondata.format.TableSchema>() { + @Mock public org.apache.carbondata.format.TableSchema setTableProperties( + Map<String, String> tableProperties) { + return tabSchema; + } + + @Mock public String getTable_id() { + return "1"; + } + + @Mock public Map<String, String> getTableProperties() { + return mapTableProperties; + } + + @Mock public List<org.apache.carbondata.format.ColumnSchema> getTable_columns() { + return thriftColumnSchemas; + } + + @Mock public org.apache.carbondata.format.SchemaEvolution getSchema_evolution() { + return schemaEvol; + } + }; + new MockUp<org.apache.carbondata.format.SchemaEvolution>() { + @Mock + public List<org.apache.carbondata.format.SchemaEvolutionEntry> getSchema_evolution_history() { + return thriftSchemaEvolutionEntries; + } + }; + } + + @Test public void testFromWrapperToExternalSchemaEvolutionEntry() { + final SchemaEvolutionEntry schemaEvolutionEntry = new SchemaEvolutionEntry(); + + new MockUp<SchemaEvolutionEntry>() { + @Mock public List<ColumnSchema> getAdded() { + return columnSchemas; + } + + @Mock public List<ColumnSchema> getRemoved() { + return columnSchemas; + } + }; + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + }; + + org.apache.carbondata.format.SchemaEvolutionEntry actualResult = thriftWrapperSchemaConverter + .fromWrapperToExternalSchemaEvolutionEntry(schemaEvolutionEntry); + assertEquals(schemaEvolEntry, actualResult); + } + + @Test public void testFromWrapperToExternalSchemaEvolution() { + SchemaEvolution schemaEvolution = new SchemaEvolution(); + + new MockUp<SchemaEvolutionEntry>() { + @Mock public List<ColumnSchema> getAdded() { + return columnSchemas; + } + + @Mock public List<ColumnSchema> getRemoved() { + return columnSchemas; + } + }; + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + List<org.apache.carbondata.format.SchemaEvolutionEntry> thriftSchemaEvolutionEntries = + new ArrayList<>(); + thriftSchemaEvolutionEntries.add(schemaEvolEntry); + + org.apache.carbondata.format.SchemaEvolution actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalSchemaEvolution(schemaEvolution); + + org.apache.carbondata.format.SchemaEvolution expectedResult = + new org.apache.carbondata.format.SchemaEvolution(thriftSchemaEvolutionEntries); + assertEquals(expectedResult, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchema() { + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForStringDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRING, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.STRING; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForIntDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.INT, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.INT; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForShortDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.SHORT, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.SHORT; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForLongDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.LONG, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.LONG; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForDoubleDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.DOUBLE, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.DOUBLE; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForDecimalDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.DECIMAL, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.DECIMAL; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForTimestampDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema( + org.apache.carbondata.format.DataType.TIMESTAMP, "columnName", "1", true, encoders, + true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.TIMESTAMP; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForArrayDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.ARRAY, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.ARRAY; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForStructDatatype() { + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRUCT, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.STRUCT; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaForDatatypeNullCase() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(null, "columnName", "1", true, encoders, + true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return null; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalColumnSchemaWhenEncoderIsNull() { + + final List<Encoding> encoding = new ArrayList<>(); + encoding.add(Encoding.INVERTED_INDEX); + encoding.add(null); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encoding; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + List<Encoding> encodings = null; + encodings = new ArrayList<>(); + encodings.add(Encoding.INVERTED_INDEX); + encodings.add(null); + List<org.apache.carbondata.format.Encoding> encoders = null; + encoders = new ArrayList<org.apache.carbondata.format.Encoding>(); + encoders.add(org.apache.carbondata.format.Encoding.INVERTED_INDEX); + encoders.add(null); + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = null; + thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRING, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + org.apache.carbondata.format.ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchema); + assertEquals(thriftColumnSchema, actualResult); + } + + @Test public void testFromWrapperToExternalTableSchema() { + TableSchema wrapperTableSchema = new TableSchema(); + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + new MockUp<SchemaEvolutionEntry>() { + @Mock public List<ColumnSchema> getAdded() { + return columnSchemas; + } + + @Mock public List<ColumnSchema> getRemoved() { + return columnSchemas; + } + }; + + final SchemaEvolution schemaEvolution = new SchemaEvolution(); + final Map mapTableProperties = new HashMap<String, String>(); + + new MockUp<TableSchema>() { + @Mock public List<ColumnSchema> getListOfColumns() { + return columnSchemas; + } + + @Mock public SchemaEvolution getSchemaEvalution() { + return schemaEvolution; + } + + @Mock public String getTableId() { + return "tableId"; + } + + @Mock public Map<String, String> getTableProperties() { + return mapTableProperties; + } + + }; + org.apache.carbondata.format.TableSchema expectedResult = + new org.apache.carbondata.format.TableSchema("tableId", thriftColumnSchemas, schemaEvol); + org.apache.carbondata.format.TableSchema actualResult = + thriftWrapperSchemaConverter.fromWrapperToExternalTableSchema(wrapperTableSchema); + assertEquals(expectedResult, actualResult); + } + + @Test public void testFromWrapperToExternalTableInfo() { + TableInfo wrapperTableInfo = new TableInfo(); + String dbName = "dbName"; + String tableName = "TableName"; + final TableSchema wrapperTableSchema = new TableSchema(); + final List<TableSchema> tableSchemas = new ArrayList<>(); + tableSchemas.add(wrapperTableSchema); + + new MockUp<SchemaEvolutionEntry>() { + @Mock public List<ColumnSchema> getAdded() { + return columnSchemas; + } + + @Mock public List<ColumnSchema> getRemoved() { + return columnSchemas; + } + }; + + new MockUp<ColumnSchema>() { + @Mock public List<Encoding> getEncodingList() { + return encodings; + } + + @Mock public int getSchemaOrdinal() { + return 1; + } + + @Mock public DataType getDataType() { + return DataType.BOOLEAN; + } + + @Mock public String getColumnName() { + return "columnName"; + } + + @Mock public String getColumnUniqueId() { + return "1"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimensionColumn() { + return true; + } + + @Mock public int getColumnGroupId() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getNumberOfChild() { + return 1; + } + + @Mock public byte[] getDefaultValue() { + return new byte[] { 1, 2 }; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + }; + + new MockUp<TableInfo>() { + @Mock public TableSchema getFactTable() { + return wrapperTableSchema; + } + + @Mock public List<TableSchema> getAggregateTableList() { + return tableSchemas; + } + }; + + new MockUp<TableSchema>() { + @Mock public List<ColumnSchema> getListOfColumns() { + return columnSchemas; + } + + final SchemaEvolution schemaEvolution = new SchemaEvolution(); + final Map mapTableProperties = new HashMap<String, String>(); + + @Mock public SchemaEvolution getSchemaEvalution() { + return schemaEvolution; + } + + @Mock public String getTableId() { + return "tableId"; + } + + @Mock public Map<String, String> getTableProperties() { + return mapTableProperties; + } + + }; + org.apache.carbondata.format.TableSchema thriftFactTable = + new org.apache.carbondata.format.TableSchema("tableId", thriftColumnSchemas, schemaEvol); + List<org.apache.carbondata.format.TableSchema> thriftAggTables = new ArrayList<>(); + thriftAggTables.add(thriftFactTable); + org.apache.carbondata.format.TableInfo actualResult = thriftWrapperSchemaConverter + .fromWrapperToExternalTableInfo(wrapperTableInfo, dbName, tableName); + org.apache.carbondata.format.TableInfo expectedResult = + new org.apache.carbondata.format.TableInfo(thriftFactTable, thriftAggTables); + assertEquals(expectedResult, actualResult); + } + + @Test public void testFromExternalToWrapperSchemaEvolutionEntry() { +long time =1112745600000L; + ColumnSchema wrapperColumnSchema = new ColumnSchema(); + wrapperColumnSchema.setColumnUniqueId("1"); + wrapperColumnSchema.setColumnName("columnName"); + wrapperColumnSchema.setColumnar(true); + wrapperColumnSchema.setDataType(DataType.STRING); + wrapperColumnSchema.setDimensionColumn(true); + wrapperColumnSchema.setEncodingList(encodings); + wrapperColumnSchema.setNumberOfChild(1); + wrapperColumnSchema.setPrecision(1); + wrapperColumnSchema.setColumnGroup(1); + wrapperColumnSchema.setScale(1); + wrapperColumnSchema.setDefaultValue(new byte[] { 1, 2 }); + wrapperColumnSchema.setColumnProperties(columnPropertyMap); + wrapperColumnSchema.setInvisible(true); + wrapperColumnSchema.setColumnReferenceId("1"); + List<ColumnSchema> wrapperAddedColumns = new ArrayList<ColumnSchema>(); + wrapperAddedColumns.add(wrapperColumnSchema); + SchemaEvolutionEntry wrapperSchemaEvolutionEntry = new SchemaEvolutionEntry(); + + List<ColumnSchema> wrapperRemovedColumns = new ArrayList<ColumnSchema>(); + wrapperRemovedColumns.add(wrapperColumnSchema); + + wrapperSchemaEvolutionEntry.setTimeStamp(time); + wrapperSchemaEvolutionEntry.setAdded(wrapperAddedColumns); + wrapperSchemaEvolutionEntry.setRemoved(wrapperRemovedColumns); + SchemaEvolutionEntry actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperSchemaEvolutionEntry(schemaEvolEntry); + assertEquals(wrapperSchemaEvolutionEntry.getAdded().get(0), actualResult.getAdded().get(0)); + } + + @Test public void testFromExternalToWrapperSchemaEvolution() { + + new MockUp<SchemaEvolutionEntry>() { + @Mock public List<ColumnSchema> getAdded() { + return columnSchemas; + } + + @Mock public List<ColumnSchema> getRemoved() { + return columnSchemas; + } + }; + + SchemaEvolution actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperSchemaEvolution(schemaEvol); + assertEquals(columnSchemas, actualResult.getSchemaEvolutionEntryList().get(0).getAdded()); + } + + @Test public void testFromExternalToWrapperColumnSchema() { + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForIntDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.INT, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForShortDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.SHORT, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForLongDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.LONG, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForDoubleDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.DOUBLE, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForDecimalDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.DECIMAL, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForTimestampDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema( + org.apache.carbondata.format.DataType.TIMESTAMP, "columnName", "1", true, encoders, + true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForArrayDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.ARRAY, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForStructDatatype() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRUCT, + "columnName", "1", true, encoders, true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaForDatatypeNullCase() { + + org.apache.carbondata.format.ColumnSchema thriftColumnSchema = + new org.apache.carbondata.format.ColumnSchema(null, "columnName", "1", true, encoders, + true); + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColumnSchema); + Boolean expectedResult = true; + assertEquals(expectedResult, actualResult.hasEncoding(encodings.get(0))); + } + + @Test public void testFromExternalToWrapperColumnSchemaEncodingNullCase() { + + final List<org.apache.carbondata.format.Encoding> encoders = + new ArrayList<org.apache.carbondata.format.Encoding>(); + encoders.add(org.apache.carbondata.format.Encoding.INVERTED_INDEX); + encoders.add(null); + + List<Encoding> encodings = new ArrayList<>(); + encodings.add(Encoding.INVERTED_INDEX); + encodings.add(null); + + final org.apache.carbondata.format.ColumnSchema thriftColSchema = + new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.STRING, + "columnName", "1", true, encoders, true); + thriftColumnSchema.setSchemaOrdinal(1); + + new MockUp<org.apache.carbondata.format.ColumnSchema>() { + @Mock + public org.apache.carbondata.format.ColumnSchema setColumn_group_id(int column_group_id) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setScale(int scale) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setPrecision(int precision) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setNum_child(int num_child) { + return thriftColSchema; + } + + @Mock + public org.apache.carbondata.format.ColumnSchema setDefault_value(byte[] default_value) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setColumnProperties( + Map<String, String> columnProperties) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setInvisible(boolean invisible) { + return thriftColSchema; + } + + @Mock public org.apache.carbondata.format.ColumnSchema setColumnReferenceId( + String columnReferenceId) { + return thriftColSchema; + } + + @Mock public String getColumn_id() { + return "1"; + } + + @Mock public String getColumn_name() { + return "columnName"; + } + + @Mock public boolean isColumnar() { + return true; + } + + @Mock public boolean isDimension() { + return true; + } + + @Mock public List<org.apache.carbondata.format.Encoding> getEncoders() { + return encoders; + } + + @Mock public int getNum_child() { + return 1; + } + + @Mock public int getPrecision() { + return 1; + } + + @Mock public int getColumn_group_id() { + return 1; + } + + @Mock public int getScale() { + return 1; + } + + @Mock public byte[] getDefault_value() { + return new byte[] { 1, 2 }; + } + + @Mock public String getAggregate_function() { + return ""; + } + + @Mock public Map<String, String> getColumnProperties() { + return columnPropertyMap; + } + + @Mock public boolean isInvisible() { + return true; + } + + @Mock public String getColumnReferenceId() { + return "1"; + } + + }; + + ColumnSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperColumnSchema(thriftColSchema); + assertEquals("columnName", actualResult.getColumnName()); + } + + @Test public void testFromExternalToWrapperTableSchema() { + String tableId = "1"; + String tableName = "tableName"; + TableSchema actualResult = + thriftWrapperSchemaConverter.fromExternalToWrapperTableSchema(tabSchema, "tableName"); + assertEquals(tableId, actualResult.getTableId()); + assertEquals(tableName, actualResult.getTableName()); + } + + @Test public void testFromExternalToWrapperTableInfo() { + final List<org.apache.carbondata.format.TableSchema> tableSchemas = new ArrayList(); + long time = 1112745600000L; + tableSchemas.add(tabSchema); + new MockUp<org.apache.carbondata.format.TableInfo>() { + @Mock public org.apache.carbondata.format.TableSchema getFact_table() { + return tabSchema; + } + + @Mock public List<org.apache.carbondata.format.TableSchema> getAggregate_table_list() { + return tableSchemas; + } + }; + org.apache.carbondata.format.TableInfo externalTableInfo = + new org.apache.carbondata.format.TableInfo(); + TableInfo actualResult = thriftWrapperSchemaConverter + .fromExternalToWrapperTableInfo(externalTableInfo, "dbName", "tableName", "/path"); + assertEquals(time, actualResult.getLastUpdatedTime()); + assertEquals("dbName_tableName", actualResult.getTableUniqueName()); + } + +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableTest.java b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableTest.java new file mode 100644 index 0000000..1dbb1bc --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableTest.java @@ -0,0 +1,118 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.metadata.schema.table; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.apache.carbondata.core.metadata.datatype.DataType; +import org.apache.carbondata.core.metadata.encoder.Encoding; +import org.apache.carbondata.core.metadata.schema.table.column.CarbonDimension; +import org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema; +import org.apache.carbondata.core.constants.CarbonCommonConstants; + +import junit.framework.TestCase; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CarbonTableTest extends TestCase { + + private CarbonTable carbonTable; + + @BeforeClass public void setUp() { + carbonTable = new CarbonTable(); + carbonTable.loadCarbonTable(getTableInfo(1000L)); + } + + @AfterClass public void tearDown() { + carbonTable = null; + } + + @Test public void testNumberOfDimensionReturnsProperCount() { + assertEquals(1, carbonTable.getNumberOfDimensions("carbonTestTable")); + } + + @Test public void testNumberOfMeasureReturnsProperCount() { + assertEquals(1, carbonTable.getNumberOfMeasures("carbonTestTable")); + } + + @Test public void testGetDatabaseNameResturnsDatabaseName() { + assertEquals("carbonTestDatabase", carbonTable.getDatabaseName()); + } + + @Test public void testFactTableNameReturnsProperFactTableName() { + assertEquals("carbonTestTable", carbonTable.getFactTableName()); + } + + @Test public void testTableUniqueNameIsProper() { + assertEquals("carbonTestDatabase_carbonTestTable", carbonTable.getTableUniqueName()); + } + + @Test public void testDimensionPresentInTableIsProper() { + CarbonDimension dimension = new CarbonDimension(getColumnarDimensionColumn(), 0, -1, -1,-1); + assertTrue(carbonTable.getDimensionByName("carbonTestTable", "IMEI").equals(dimension)); + } + + private ColumnSchema getColumnarDimensionColumn() { + ColumnSchema dimColumn = new ColumnSchema(); + dimColumn.setColumnar(true); + dimColumn.setColumnName("IMEI"); + dimColumn.setColumnUniqueId(UUID.randomUUID().toString()); + dimColumn.setDataType(DataType.STRING); + dimColumn.setDimensionColumn(true); + List<Encoding> encodeList = + new ArrayList<Encoding>(CarbonCommonConstants.DEFAULT_COLLECTION_SIZE); + encodeList.add(Encoding.DICTIONARY); + dimColumn.setEncodingList(encodeList); + dimColumn.setNumberOfChild(0); + return dimColumn; + } + + private ColumnSchema getColumnarMeasureColumn() { + ColumnSchema dimColumn = new ColumnSchema(); + dimColumn.setColumnName("IMEI_COUNT"); + dimColumn.setColumnUniqueId(UUID.randomUUID().toString()); + dimColumn.setDataType(DataType.STRING); + return dimColumn; + } + + private TableSchema getTableSchema() { + TableSchema tableSchema = new TableSchema(); + List<ColumnSchema> columnSchemaList = new ArrayList<ColumnSchema>(); + columnSchemaList.add(getColumnarDimensionColumn()); + columnSchemaList.add(getColumnarMeasureColumn()); + tableSchema.setListOfColumns(columnSchemaList); + tableSchema.setTableId(UUID.randomUUID().toString()); + tableSchema.setTableName("carbonTestTable"); + return tableSchema; + } + + private TableInfo getTableInfo(long timeStamp) { + TableInfo info = new TableInfo(); + info.setDatabaseName("carbonTestDatabase"); + info.setLastUpdatedTime(timeStamp); + info.setTableUniqueName("carbonTestDatabase_carbonTestTable"); + info.setFactTable(getTableSchema()); + info.setStorePath("testore"); + return info; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableWithComplexTypesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableWithComplexTypesTest.java b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableWithComplexTypesTest.java new file mode 100644 index 0000000..efc1b06 --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/CarbonTableWithComplexTypesTest.java @@ -0,0 +1,158 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.metadata.schema.table; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.apache.carbondata.core.metadata.datatype.DataType; +import org.apache.carbondata.core.metadata.encoder.Encoding; +import org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema; +import org.apache.carbondata.core.constants.CarbonCommonConstants; + +import junit.framework.TestCase; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CarbonTableWithComplexTypesTest extends TestCase { + + private CarbonTable carbonTable; + + @BeforeClass public void setUp() { + carbonTable = new CarbonTable(); + carbonTable.loadCarbonTable(getTableInfo(1000L)); + } + + @AfterClass public void tearDown() { + carbonTable = null; + } + + @Test public void testNumberOfDimensionReturnsProperCount() { + assertEquals(2, carbonTable.getNumberOfDimensions("carbonTestTable")); + } + + @Test public void testNumberOfMeasureReturnsProperCount() { + assertEquals(1, carbonTable.getNumberOfMeasures("carbonTestTable")); + } + + @Test public void testGetDatabaseNameResturnsDatabaseName() { + assertEquals("carbonTestDatabase", carbonTable.getDatabaseName()); + } + + @Test public void testFactTableNameReturnsProperFactTableName() { + assertEquals("carbonTestTable", carbonTable.getFactTableName()); + } + + @Test public void testTableUniqueNameIsProper() { + assertEquals("carbonTestDatabase_carbonTestTable", carbonTable.getTableUniqueName()); + } + + private List<ColumnSchema> getColumnarDimensionColumn() { + + List<ColumnSchema> cols = new ArrayList<ColumnSchema>(); + + ColumnSchema dimColumn = new ColumnSchema(); + dimColumn.setColumnar(true); + dimColumn.setColumnName("IMEI"); + dimColumn.setColumnUniqueId(UUID.randomUUID().toString()); + dimColumn.setDataType(DataType.STRING); + dimColumn.setDimensionColumn(true); + List<Encoding> encodeList = + new ArrayList<Encoding>(CarbonCommonConstants.DEFAULT_COLLECTION_SIZE); + encodeList.add(Encoding.DICTIONARY); + dimColumn.setEncodingList(encodeList); + dimColumn.setNumberOfChild(0); + cols.add(dimColumn); + + ColumnSchema structColumn = new ColumnSchema(); + structColumn.setColumnar(true); + structColumn.setColumnName("mobile"); + structColumn.setColumnUniqueId(UUID.randomUUID().toString()); + structColumn.setDataType(DataType.STRUCT); + structColumn.setDimensionColumn(true); + structColumn.setEncodingList(encodeList); + structColumn.setNumberOfChild(2); + cols.add(structColumn); + + ColumnSchema primitiveColumn = new ColumnSchema(); + primitiveColumn.setColumnar(true); + primitiveColumn.setColumnName("mobile.stdcode"); + primitiveColumn.setColumnUniqueId(UUID.randomUUID().toString()); + primitiveColumn.setDataType(DataType.STRING); + primitiveColumn.setDimensionColumn(true); + primitiveColumn.setEncodingList(encodeList); + primitiveColumn.setNumberOfChild(0); + cols.add(primitiveColumn); + + ColumnSchema arrayColumn = new ColumnSchema(); + arrayColumn.setColumnar(true); + arrayColumn.setColumnName("mobile.val"); + arrayColumn.setColumnUniqueId(UUID.randomUUID().toString()); + arrayColumn.setDataType(DataType.ARRAY); + arrayColumn.setDimensionColumn(true); + arrayColumn.setEncodingList(encodeList); + arrayColumn.setNumberOfChild(1); + cols.add(arrayColumn); + + ColumnSchema primitiveColumn1 = new ColumnSchema(); + primitiveColumn1.setColumnar(true); + primitiveColumn1.setColumnName("mobile.val.phoneno"); + primitiveColumn1.setColumnUniqueId(UUID.randomUUID().toString()); + primitiveColumn1.setDataType(DataType.STRING); + primitiveColumn1.setDimensionColumn(true); + primitiveColumn1.setEncodingList(encodeList); + primitiveColumn1.setNumberOfChild(0); + cols.add(primitiveColumn1); + + return cols; + } + + private ColumnSchema getColumnarMeasureColumn() { + ColumnSchema dimColumn = new ColumnSchema(); + dimColumn.setColumnName("IMEI_COUNT"); + dimColumn.setColumnUniqueId(UUID.randomUUID().toString()); + dimColumn.setDataType(DataType.STRING); + dimColumn.setDimensionColumn(false); + return dimColumn; + } + + private TableSchema getTableSchema() { + TableSchema tableSchema = new TableSchema(); + List<ColumnSchema> columnSchemaList = new ArrayList<ColumnSchema>(); + columnSchemaList.addAll(getColumnarDimensionColumn()); + columnSchemaList.add(getColumnarMeasureColumn()); + tableSchema.setListOfColumns(columnSchemaList); + tableSchema.setTableId(UUID.randomUUID().toString()); + tableSchema.setTableName("carbonTestTable"); + return tableSchema; + } + + private TableInfo getTableInfo(long timeStamp) { + TableInfo info = new TableInfo(); + info.setDatabaseName("carbonTestDatabase"); + info.setLastUpdatedTime(timeStamp); + info.setTableUniqueName("carbonTestDatabase_carbonTestTable"); + info.setFactTable(getTableSchema()); + info.setStorePath("testStore"); + return info; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableInfoTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableInfoTest.java b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableInfoTest.java new file mode 100644 index 0000000..dcd3ea1 --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableInfoTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.metadata.schema.table; + +import junit.framework.TestCase; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TableInfoTest extends TestCase { + + private TableInfo tableInfo; + + @BeforeClass public void setUp() { + tableInfo = getTableInfo("tableInfoTestDatabase_equalsTableInfoTestTable"); + } + + @AfterClass public void tearDown() { + tableInfo = null; + } + + @Test public void testTableInfoEquals() { + TableInfo cmpEqualsTableInfo = getTableInfo("tableInfoTestDatabase_equalsTableInfoTestTable"); + TableInfo cmpNotEqualsTableInfo = getTableInfo("tableInfoTestDatabase_notEqualsTableInfoTestTable"); + assertTrue(tableInfo.equals(cmpEqualsTableInfo)); + assertTrue(!(tableInfo.equals(cmpNotEqualsTableInfo))); + } + + private TableInfo getTableInfo(String tableUniqueName) { + TableInfo info = new TableInfo(); + info.setDatabaseName("tableInfoTestDatabase"); + info.setLastUpdatedTime(1000L); + info.setTableUniqueName(tableUniqueName); + return info; + } +} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableSchemaTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableSchemaTest.java b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableSchemaTest.java new file mode 100644 index 0000000..d1d6a8b --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/metadata/schema/table/TableSchemaTest.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.metadata.schema.table; + +import junit.framework.TestCase; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TableSchemaTest extends TestCase { + + private TableSchema tableSchema; + + @BeforeClass public void setUp() { + tableSchema = getTableSchema("1000", "tableSchemaTestTable"); + } + + @AfterClass public void tearDown() { + tableSchema = null; + } + + @Test public void testTableInfoEquals() { + TableSchema cmpEqualsTableSchema = getTableSchema("1000", "tableSchemaTestTable"); + TableSchema cmpNotEqualsTableSchema = getTableSchema("1000", "tableSchemaTestTable2"); + assertTrue(tableSchema.equals(cmpEqualsTableSchema)); + assertTrue(!(tableSchema.equals(cmpNotEqualsTableSchema))); + } + + private TableSchema getTableSchema(String tableId, String tableName) { + TableSchema tableSchema = new TableSchema(); + tableSchema.setTableId(tableId); + tableSchema.setTableName(tableName); + return tableSchema; + } +} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatDirectoryStructureTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatDirectoryStructureTest.java b/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatDirectoryStructureTest.java deleted file mode 100644 index a085b9a..0000000 --- a/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatDirectoryStructureTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.carbondata.core.path; - -import java.io.IOException; -import java.util.UUID; - -import org.apache.carbondata.core.carbon.CarbonTableIdentifier; -import org.apache.carbondata.core.carbon.path.CarbonStorePath; -import org.apache.carbondata.core.carbon.path.CarbonTablePath; -import org.junit.Test; - -import static junit.framework.TestCase.assertTrue; - -/** - * Test carbon directory structure - */ -public class CarbonFormatDirectoryStructureTest { - - private final String CARBON_STORE = "/opt/carbonstore"; - - /** - * test table path methods - */ - @Test public void testTablePathStructure() throws IOException { - CarbonTableIdentifier tableIdentifier = new CarbonTableIdentifier("d1", "t1", UUID.randomUUID().toString()); - CarbonStorePath carbonStorePath = new CarbonStorePath(CARBON_STORE); - CarbonTablePath carbonTablePath = carbonStorePath.getCarbonTablePath(tableIdentifier); - assertTrue(carbonTablePath.getPath().replace("\\", "/").equals(CARBON_STORE + "/d1/t1")); - assertTrue(carbonTablePath.getSchemaFilePath().replace("\\", "/").equals(CARBON_STORE + "/d1/t1/Metadata/schema")); - assertTrue(carbonTablePath.getTableStatusFilePath().replace("\\", "/") - .equals(CARBON_STORE + "/d1/t1/Metadata/tablestatus")); - assertTrue(carbonTablePath.getDictionaryFilePath("t1_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/t1/Metadata/t1_c1.dict")); - assertTrue(carbonTablePath.getDictionaryMetaFilePath("t1_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/t1/Metadata/t1_c1.dictmeta")); - assertTrue(carbonTablePath.getSortIndexFilePath("t1_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/t1/Metadata/t1_c1.sortindex")); - assertTrue(carbonTablePath.getCarbonDataFilePath("1", "2", 3, 4, 0, "999").replace("\\", "/") - .equals(CARBON_STORE + "/d1/t1/Fact/Part1/Segment_2/part-3-4-0-999.carbondata")); - } - - /** - * test data file name - */ - @Test public void testDataFileName() throws IOException { - assertTrue(CarbonTablePath.DataFileUtil.getPartNo("part-3-4-999.carbondata").equals("3")); - assertTrue(CarbonTablePath.DataFileUtil.getTaskNo("part-3-4-999.carbondata").equals("4")); - assertTrue( - CarbonTablePath.DataFileUtil.getTimeStampFromFileName("part-3-4-999.carbondata").equals("999")); - assertTrue(CarbonTablePath.DataFileUtil.getPartNo("/opt/apache-carbon/part-3-4-999.carbondata").equals("3")); - assertTrue(CarbonTablePath.DataFileUtil.getTaskNo("/opt/apache-carbon/part-3-4-999.carbondata").equals("4")); - assertTrue( - CarbonTablePath.DataFileUtil.getTimeStampFromFileName("/opt/apache-carbon/part-3-4-999.carbondata").equals("999")); - } -} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatSharedDictionaryTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatSharedDictionaryTest.java b/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatSharedDictionaryTest.java deleted file mode 100644 index 631393b..0000000 --- a/core/src/test/java/org/apache/carbondata/core/path/CarbonFormatSharedDictionaryTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.carbondata.core.path; - -import java.io.IOException; - -import org.apache.carbondata.core.carbon.path.CarbonSharedDictionaryPath; - -import org.junit.Test; - -import static junit.framework.TestCase.assertTrue; - -/** - * test shared dictionary paths - */ -public class CarbonFormatSharedDictionaryTest { - - private final String CARBON_STORE = "/opt/carbonstore"; - - /** - * test shared dictionary location - */ - @Test public void testSharedDimentionLocation() throws IOException { - assertTrue(CarbonSharedDictionaryPath.getDictionaryFilePath(CARBON_STORE, "d1", "shared_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/SharedDictionary/shared_c1.dict")); - assertTrue(CarbonSharedDictionaryPath.getDictionaryMetaFilePath(CARBON_STORE, "d1", "shared_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/SharedDictionary/shared_c1.dictmeta")); - assertTrue(CarbonSharedDictionaryPath.getSortIndexFilePath(CARBON_STORE, "d1", "shared_c1").replace("\\", "/") - .equals(CARBON_STORE + "/d1/SharedDictionary/shared_c1.sortindex")); - } -} http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/reader/CarbonDictionaryReaderImplTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/reader/CarbonDictionaryReaderImplTest.java b/core/src/test/java/org/apache/carbondata/core/reader/CarbonDictionaryReaderImplTest.java index 452e0d1..5432ad6 100644 --- a/core/src/test/java/org/apache/carbondata/core/reader/CarbonDictionaryReaderImplTest.java +++ b/core/src/test/java/org/apache/carbondata/core/reader/CarbonDictionaryReaderImplTest.java @@ -25,14 +25,10 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import org.apache.carbondata.common.ext.PathFactory; -import org.apache.carbondata.common.factory.CarbonCommonFactory; -import org.apache.carbondata.core.carbon.CarbonTableIdentifier; -import org.apache.carbondata.core.carbon.ColumnIdentifier; -import org.apache.carbondata.core.reader.CarbonDictionaryColumnMetaChunk; -import org.apache.carbondata.core.reader.CarbonDictionaryMetadataReaderImpl; -import org.apache.carbondata.core.reader.CarbonDictionaryReaderImpl; -import org.apache.carbondata.core.reader.ThriftReader; +import org.apache.carbondata.core.service.impl.PathFactory; +import org.apache.carbondata.core.service.CarbonCommonFactory; +import org.apache.carbondata.core.metadata.CarbonTableIdentifier; +import org.apache.carbondata.core.metadata.ColumnIdentifier; import org.apache.carbondata.core.service.PathService; import mockit.Mock; http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/reader/sortindex/CarbonDictionarySortIndexReaderImplTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/reader/sortindex/CarbonDictionarySortIndexReaderImplTest.java b/core/src/test/java/org/apache/carbondata/core/reader/sortindex/CarbonDictionarySortIndexReaderImplTest.java index 700edc4..585f33b 100644 --- a/core/src/test/java/org/apache/carbondata/core/reader/sortindex/CarbonDictionarySortIndexReaderImplTest.java +++ b/core/src/test/java/org/apache/carbondata/core/reader/sortindex/CarbonDictionarySortIndexReaderImplTest.java @@ -24,10 +24,10 @@ import java.util.Arrays; import java.util.List; import java.util.UUID; -import org.apache.carbondata.core.carbon.CarbonTableIdentifier; -import org.apache.carbondata.core.carbon.ColumnIdentifier; -import org.apache.carbondata.core.datastorage.store.filesystem.CarbonFile; -import org.apache.carbondata.core.datastorage.store.impl.FileFactory; +import org.apache.carbondata.core.metadata.CarbonTableIdentifier; +import org.apache.carbondata.core.metadata.ColumnIdentifier; +import org.apache.carbondata.core.datastore.filesystem.CarbonFile; +import org.apache.carbondata.core.datastore.impl.FileFactory; import org.apache.carbondata.core.util.CarbonUtil; import org.apache.carbondata.core.writer.CarbonDictionaryWriter; import org.apache.carbondata.core.writer.CarbonDictionaryWriterImpl; http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ce09aaaf/core/src/test/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollectorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollectorTest.java b/core/src/test/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollectorTest.java new file mode 100644 index 0000000..1b2f533 --- /dev/null +++ b/core/src/test/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollectorTest.java @@ -0,0 +1,154 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.carbondata.core.scan.collector.impl; + + +public class DictionaryBasedResultCollectorTest { + +// private static DictionaryBasedResultCollector dictionaryBasedResultCollector; +// private static BlockExecutionInfo blockExecutionInfo; +// +// @BeforeClass public static void setUp() { +// blockExecutionInfo = new BlockExecutionInfo(); +// KeyStructureInfo keyStructureInfo = new KeyStructureInfo(); +// blockExecutionInfo.setKeyStructureInfo(keyStructureInfo); +// AggregatorInfo aggregatorInfo = new AggregatorInfo(); +// aggregatorInfo.setMeasureOrdinals(new int[] { 10, 20, 30, 40 }); +// aggregatorInfo.setMeasureExists(new boolean[] { true, false, false, false }); +// aggregatorInfo.setDefaultValues(new Object[] { 1, 2, 3, 4 }); +// aggregatorInfo.setMeasureDataTypes( +// new DataType[] { DataType.INT, DataType.TIMESTAMP, DataType.INT, DataType.INT }); +// blockExecutionInfo.setAggregatorInfo(aggregatorInfo); +// QueryDimension queryDimension1 = new QueryDimension("QDCol1"); +// queryDimension1.setQueryOrder(1); +// ColumnSchema columnSchema = new ColumnSchema(); +// queryDimension1.setDimension(new CarbonDimension(columnSchema, 0, 0, 0, 0)); +// QueryDimension queryDimension2 = new QueryDimension("QDCol2"); +// queryDimension2.setQueryOrder(2); +// queryDimension2.setDimension(new CarbonDimension(columnSchema, 1, 1, 1, 1)); +// QueryDimension queryDimension3 = new QueryDimension("QDCol3"); +// queryDimension3.setQueryOrder(3); +// queryDimension3.setDimension(new CarbonDimension(columnSchema, 2, 0, 0, 0)); +// QueryDimension queryDimension4 = new QueryDimension("QDCol4"); +// queryDimension4.setQueryOrder(4); +// queryDimension4.setDimension(new CarbonDimension(columnSchema, 3, 0, 0, 0)); +// blockExecutionInfo.setQueryDimensions( +// new QueryDimension[] { queryDimension1, queryDimension2, queryDimension3, +// queryDimension4 }); +// QueryMeasure queryMeasure1 = new QueryMeasure("QMCol1"); +// queryMeasure1.setQueryOrder(1); +// QueryMeasure queryMeasure2 = new QueryMeasure("QMCol2"); +// queryMeasure1.setQueryOrder(2); +// QueryMeasure queryMeasure3 = new QueryMeasure("QMCol3"); +// queryMeasure1.setQueryOrder(3); +// QueryMeasure queryMeasure4 = new QueryMeasure("QMCol4"); +// queryMeasure1.setQueryOrder(4); +// blockExecutionInfo.setQueryMeasures( +// new QueryMeasure[] { queryMeasure1, queryMeasure2, queryMeasure3, queryMeasure4 }); +// Map<Integer, GenericQueryType> complexDimensionInfoMap = new HashMap<>(); +// complexDimensionInfoMap.put(1, new ArrayQueryType("name1", "parent1", 1)); +// complexDimensionInfoMap.put(2, new ArrayQueryType("name2", "parent2", 2)); +// complexDimensionInfoMap.put(3, new ArrayQueryType("name3", "parent3", 3)); +// complexDimensionInfoMap.put(4, new ArrayQueryType("name4", "parent4", 4)); +// blockExecutionInfo.setComplexDimensionInfoMap(complexDimensionInfoMap); +// dictionaryBasedResultCollector = new DictionaryBasedResultCollector(blockExecutionInfo); +// } +// +// @Test public void testToCollectData() { +// new MockUp<CarbonUtil>() { +// @SuppressWarnings("unused") @Mock boolean[] getDictionaryEncodingArray( +// QueryDimension[] queryDimensions) { +// return new boolean[] { true, false, true, true }; +// } +// +// @SuppressWarnings("unused") @Mock boolean[] getDirectDictionaryEncodingArray( +// QueryDimension[] queryDimensions) { +// return new boolean[] { true, true, false, false }; +// } +// +// @SuppressWarnings("unused") @Mock boolean[] getComplexDataTypeArray( +// QueryDimension[] queryDimensions) { +// return new boolean[] { false, false, true, false }; +// } +// }; +// new MockUp<DataTypeUtil>() { +// @SuppressWarnings("unused") @Mock Object getDataBasedOnDataType(String data, +// DataType actualDataType) { +// return 1; +// } +// }; +// +// new MockUp<NonFilterQueryScannedResult>() { +// @SuppressWarnings("unused") @Mock int[] getDictionaryKeyIntegerArray() { +// this.getMockInstance().incrementCounter(); +// System.out.println("Mocked"); +// return new int[] { 1, 2 }; +// } +// +// @SuppressWarnings("unused") @Mock String[] getNoDictionaryKeyStringArray() { +// return new String[] { "1", "2" }; +// } +// +// @SuppressWarnings("unused") @Mock byte[][] getComplexTypeKeyArray() { +// return new byte[][] { { 1, 2 }, { 1, 2 } }; +// } +// +// @SuppressWarnings("unused") @Mock public MeasureColumnDataChunk getMeasureChunk(int ordinal) { +// MeasureColumnDataChunk measureColumnDataChunk = new MeasureColumnDataChunk(); +// PresenceMeta presenceMeta = new PresenceMeta(); +// BitSet bitSet = new BitSet(); +// bitSet.set(1); +// presenceMeta.setBitSet(bitSet); +// measureColumnDataChunk.setNullValueIndexHolder(presenceMeta); +// CarbonReadDataHolder carbonReadDataHolder = new CarbonReadDataHolder(); +// carbonReadDataHolder.setReadableLongValues(new long[] { 1 }); +// measureColumnDataChunk.setMeasureDataHolder(carbonReadDataHolder); +// return measureColumnDataChunk; +// } +// }; +// +// new MockUp<DirectDictionaryKeyGeneratorFactory>() { +// @SuppressWarnings("unused") @Mock DirectDictionaryGenerator getDirectDictionaryGenerator( +// DataType dataType) { +// if (dataType == DataType.TIMESTAMP) return new TimeStampDirectDictionaryGenerator( +// CarbonCommonConstants.CARBON_TIMESTAMP_DEFAULT_FORMAT); +// else return null; +// } +// }; +// new MockUp<TimeStampDirectDictionaryGenerator>() { +// @SuppressWarnings("unused") @Mock Object getValueFromSurrogate(int key) { +// return 100L; +// } +// }; +// +// new MockUp<ArrayQueryType>() { +// @SuppressWarnings("unused") @Mock Object getDataBasedOnDataTypeFromSurrogates( +// ByteBuffer surrogateData) { +// return ByteBuffer.wrap("1".getBytes()); +// } +// }; +// +// AbstractScannedResult abstractScannedResult = +// new NonFilterQueryScannedResult(blockExecutionInfo); +// abstractScannedResult.setNumberOfRows(2); +// List<Object[]> result = dictionaryBasedResultCollector.collectData(abstractScannedResult, 2); +// int expectedResult = 2; +// assertThat(result.size(), is(equalTo(expectedResult))); +// } +} \ No newline at end of file