Package com.google.visualization.datasource.query.engine

Source Code of com.google.visualization.datasource.query.engine.ScalarFunctionColumnTitleTest

// Copyright 2009 Google Inc.
//
// Licensed 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 com.google.visualization.datasource.query.engine;

import com.google.common.collect.Lists;
import com.google.visualization.datasource.datatable.ColumnDescription;
import com.google.visualization.datasource.datatable.DataTable;
import com.google.visualization.datasource.datatable.value.BooleanValue;
import com.google.visualization.datasource.datatable.value.NumberValue;
import com.google.visualization.datasource.datatable.value.Value;
import com.google.visualization.datasource.datatable.value.ValueType;
import com.google.visualization.datasource.query.AbstractColumn;
import com.google.visualization.datasource.query.AggregationColumn;
import com.google.visualization.datasource.query.AggregationType;
import com.google.visualization.datasource.query.ScalarFunctionColumn;
import com.google.visualization.datasource.query.SimpleColumn;
import com.google.visualization.datasource.query.scalarfunction.TimeComponentExtractor;

import junit.framework.TestCase;

import java.util.List;

/**
* Tests the ScalarFunctionColumnTitleTest class.
*
* @author Liron L.
*/
public class ScalarFunctionColumnTitleTest extends TestCase {

  @Override
  public void setUp() throws Exception {
    super.setUp();
  }

  /**
   * Tests the createColumnDescription method.
   */
  public void testCreateColumnDescription() {
    ColumnDescription simpleColumnDescription =
        new ColumnDescription("simpleColumn", ValueType.DATE, "simpleLabel");
    ColumnDescription aggreationColumnDescription =
        new ColumnDescription("min-simpleColumn", ValueType.DATE,
            "aggLabel");
    DataTable table = new DataTable();
    table.addColumn(simpleColumnDescription);
    table.addColumn(aggreationColumnDescription);

    List<AbstractColumn> simpleColumns =
        Lists.newArrayList((AbstractColumn) new SimpleColumn("simpleColumn"));
    List<AbstractColumn> aggregationColumns =
        Lists.newArrayList((AbstractColumn) new AggregationColumn(
            new SimpleColumn("simpleColumn"), AggregationType.MIN));
    ScalarFunctionColumnTitle titleYear =
        new ScalarFunctionColumnTitle(Lists.<Value>newArrayList(),
            new ScalarFunctionColumn(simpleColumns,
                TimeComponentExtractor.getInstance(
                    TimeComponentExtractor.TimeComponent.YEAR)));

    ScalarFunctionColumnTitle titleSecondWithAggregation =
        new ScalarFunctionColumnTitle(Lists.<Value>newArrayList(),
            new ScalarFunctionColumn(aggregationColumns,
                TimeComponentExtractor.getInstance(
                    TimeComponentExtractor.TimeComponent.SECOND)));

    ScalarFunctionColumnTitle titleMonthWithPivot =
        new ScalarFunctionColumnTitle(Lists.newArrayList(new NumberValue(3.14),
            BooleanValue.TRUE), new ScalarFunctionColumn(simpleColumns,
            TimeComponentExtractor.getInstance(
                TimeComponentExtractor.TimeComponent.MONTH)));

    ScalarFunctionColumnTitle titleDayWithPivotAndAgg =
        new ScalarFunctionColumnTitle(Lists.newArrayList(new NumberValue(3.14),
            BooleanValue.TRUE), new ScalarFunctionColumn(aggregationColumns,
            TimeComponentExtractor.getInstance(
                TimeComponentExtractor.TimeComponent.DAY)));

    ColumnDescription resultColumnDescriptionYear = titleYear.createColumnDescription(table);

    ColumnDescription resultColumnDescriptionSecondWithAgg =
        titleSecondWithAggregation.createColumnDescription(table);

    ColumnDescription resultColumnDescriptionMonthWithPivot =
        titleMonthWithPivot.createColumnDescription(table);

    ColumnDescription resultColumnDescriptionDayWithPivotAndAgg =
        titleDayWithPivotAndAgg.createColumnDescription(table);

    // Check the creation of result column description with year.
    assertEquals("year_simpleColumn", resultColumnDescriptionYear.getId());
    assertEquals(" year(simpleLabel)", resultColumnDescriptionYear.getLabel());
    assertEquals(ValueType.NUMBER, resultColumnDescriptionYear.getType());

    // Check the creation of result column description with aggregation.
    assertEquals("second_min-simpleColumn",
        resultColumnDescriptionSecondWithAgg.getId());
    assertEquals(" second(aggLabel)",
        resultColumnDescriptionSecondWithAgg.getLabel());
    assertEquals(ValueType.NUMBER,
        resultColumnDescriptionSecondWithAgg.getType());

    // Check the creation of result column description with pivot.
    assertEquals("3.14,true month_simpleColumn",
        resultColumnDescriptionMonthWithPivot.getId());
    assertEquals("3.14,true month(simpleLabel)",
        resultColumnDescriptionMonthWithPivot.getLabel());
    assertEquals(ValueType.NUMBER,
        resultColumnDescriptionMonthWithPivot.getType());

    // Check the creation of result column description with aggregation
    // and pivot.
    assertEquals("3.14,true day_min-simpleColumn",
        resultColumnDescriptionDayWithPivotAndAgg.getId());
    assertEquals("3.14,true day(aggLabel)",
        resultColumnDescriptionDayWithPivotAndAgg.getLabel());
    assertEquals(ValueType.NUMBER,
        resultColumnDescriptionDayWithPivotAndAgg.getType());
  }
}
TOP

Related Classes of com.google.visualization.datasource.query.engine.ScalarFunctionColumnTitleTest

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