blob: 236c3fc9763187187d1c24ffeba4c5ec3b1790f8 [file] [log] [blame]
/*
* 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.datatype.DataTypes;
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);
thriftColumnSchema.setAggregate_function("");
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() {
return 1112745600000L;
}
@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 DataTypes.BOOLEAN;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 DataTypes.BOOLEAN;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 testFromWrapperToExternalColumnSchemaForBooleanDataType() {
org.apache.carbondata.format.ColumnSchema thriftColumnSchema =
new org.apache.carbondata.format.ColumnSchema(org.apache.carbondata.format.DataType.BOOLEAN,
"columnName", "1", true, encoders, true);
thriftColumnSchema.setSchemaOrdinal(1);
thriftColumnSchema.setAggregate_function("");
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 DataTypes.BOOLEAN;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 String getAggFunction() {return "" ;}
};
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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.STRING;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.INT;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.SHORT;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.LONG;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.DOUBLE;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.createDefaultDecimalType();
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 String getAggFunction() {
return "";
}
};
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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.TIMESTAMP;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.createDefaultArrayType();
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.createDefaultStructType();
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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(
org.apache.carbondata.format.DataType.INT,
"columnName",
"1",
true,
encoders,
true);
thriftColumnSchema.setSchemaOrdinal(1);
thriftColumnSchema.setAggregate_function("");
new MockUp<ColumnSchema>() {
@Mock public List<Encoding> getEncodingList() {
return encodings;
}
@Mock public int getSchemaOrdinal() {
return 1;
}
@Mock public DataType getDataType() {
return DataTypes.INT;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 DataTypes.BOOLEAN;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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.BOOLEAN,
"columnName", "1", true, encoders, true);
thriftColumnSchema.setSchemaOrdinal(1);
thriftColumnSchema.setAggregate_function("");
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 DataTypes.STRING;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 getSchemaEvolution() {
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 DataTypes.STRING;
}
@Mock public String getColumnName() {
return "columnName";
}
@Mock public String getColumnUniqueId() {
return "1";
}
@Mock public boolean isDimensionColumn() {
return true;
}
@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 String getAggFunction() { return "";}
};
new MockUp<TableInfo>() {
@Mock public TableSchema getFactTable() {
return wrapperTableSchema;
}
};
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 getSchemaEvolution() {
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);
org.apache.carbondata.format.TableInfo actualResult = thriftWrapperSchemaConverter
.fromWrapperToExternalTableInfo(wrapperTableInfo, dbName, tableName);
org.apache.carbondata.format.TableInfo expectedResult =
new org.apache.carbondata.format.TableInfo(thriftFactTable, new ArrayList<org.apache
.carbondata.format.TableSchema>());
assertEquals(expectedResult, actualResult);
}
@Test public void testFromExternalToWrapperSchemaEvolutionEntry() {
long time =1112745600000L;
ColumnSchema wrapperColumnSchema = new ColumnSchema();
wrapperColumnSchema.setColumnUniqueId("1");
wrapperColumnSchema.setColumnName("columnName");
wrapperColumnSchema.setDataType(DataTypes.STRING);
wrapperColumnSchema.setDimensionColumn(true);
wrapperColumnSchema.setEncodingList(encodings);
wrapperColumnSchema.setNumberOfChild(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(
org.apache.carbondata.format.DataType.STRING,
"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());
}
}