/* * Copyright 2014 Red Hat, Inc. and/or its affiliates. * * 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 org.dashbuilder.dataprovider.backend.elasticsearch; import org.dashbuilder.dataset.DataSet; import org.dashbuilder.dataset.DataSetFactory; import org.dashbuilder.dataset.date.Month; import org.junit.Before; import org.junit.Test; import static org.dashbuilder.dataset.Assertions.assertDataSetValues; import static org.dashbuilder.dataset.group.AggregateFunctionType.COUNT; import static org.dashbuilder.dataset.group.AggregateFunctionType.SUM; import static org.dashbuilder.dataset.group.DateIntervalType.MONTH; /** * @since 0.4.0 */ public class ElasticSearchEmptyIntervalsTest extends ElasticSearchDataSetTestBase { protected static final String EL_EXAMPLE_EMPTYINTERVALS_DEF = "org/dashbuilder/dataprovider/backend/elasticsearch/emptyIntervals.dset"; protected static final String EL_DATASET_EMPTYINTERVALS_UUID = "emptyIntervals"; /** * Register the dataset used for this test case. */ @Before public void registerDataSet() throws Exception { super.setUp(); // Register the data set. _registerDataSet(EL_EXAMPLE_EMPTYINTERVALS_DEF); } @Test public void testNonEmptyIntervals() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetFactory.newDataSetLookupBuilder() .dataset(EL_DATASET_EMPTYINTERVALS_UUID) .group("DATE").fixed(MONTH, false).firstMonth(Month.JANUARY) .column("DATE", "Period") .column(COUNT, "Occurrences") .column("NUMBER", SUM, "total") .buildLookup()); // printDataSet(result); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"1", "1.00", "1.00"}, {"2", "1.00", "1.00"}, {"3", "2.00", "2.00"}, {"4", "1.00", "1.00"}, {"5", "1.00", "1.00"}, {"6", "1.00", "1.00"}, {"7", "1.00", "1.00"}, {"8", "1.00", "1.00"}, {"10", "1.00", "1.00"}, {"11", "1.00", "1.00"} }, 0); } @Test public void testEmptyIntervals() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetFactory.newDataSetLookupBuilder() .dataset(EL_DATASET_EMPTYINTERVALS_UUID) .group("DATE").fixed(MONTH, true).firstMonth(Month.JANUARY) .column("DATE", "Period") .column(COUNT, "Occurrences") .column("NUMBER", SUM, "total") .buildLookup()); // printDataSet(result); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"1", "1.00", "1.00"}, {"2", "1.00", "1.00"}, {"3", "2.00", "2.00"}, {"4", "1.00", "1.00"}, {"5", "1.00", "1.00"}, {"6", "1.00", "1.00"}, {"7", "1.00", "1.00"}, {"8", "1.00", "1.00"}, {"9", "0.00", "0.00"}, {"10", "1.00", "1.00"}, {"11", "1.00", "1.00"}, {"12", "0.00", "0.00"} }, 0); } @Test public void testEmptyIntervalsUsingFirstMonth() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetFactory.newDataSetLookupBuilder() .dataset(EL_DATASET_EMPTYINTERVALS_UUID) .group("DATE").fixed(MONTH, true).firstMonth(Month.MARCH) .column("DATE", "Period") .column(COUNT, "Occurrences") .column("NUMBER", SUM, "total") .buildLookup()); // printDataSet(result); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"3", "2.00", "2.00"}, {"4", "1.00", "1.00"}, {"5", "1.00", "1.00"}, {"6", "1.00", "1.00"}, {"7", "1.00", "1.00"}, {"8", "1.00", "1.00"}, {"9", "0.00", "0.00"}, {"10", "1.00", "1.00"}, {"11", "1.00", "1.00"}, {"12", "0.00", "0.00"}, {"1", "1.00", "1.00"}, {"2", "1.00", "1.00"} }, 0); } }