/* * Copyright 2016 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.dataset; import java.util.List; import org.dashbuilder.DataSetCore; import org.junit.Before; import org.junit.Test; import static org.dashbuilder.dataset.ExpenseReportsData.*; import static org.junit.Assert.*; public class DataSetColumnTest { public static final String EXPENSE_REPORTS = "expense_reports"; DataSetManager dataSetManager = DataSetCore.get().getDataSetManager(); @Before public void setUp() throws Exception { DataSet dataSet = ExpenseReportsData.INSTANCE.toDataSet(); dataSet.setUUID(EXPENSE_REPORTS); dataSetManager.registerDataSet(dataSet); } @Test public void testDataSetLookupColumns() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(DataSetGroupTest.EXPENSE_REPORTS) .column(COLUMN_CITY, "City") .column(COLUMN_DEPARTMENT, "Department") .column(COLUMN_EMPLOYEE, "Employee") .column(COLUMN_AMOUNT, "Amount") .buildLookup()); assertEquals(result.getRowCount(), 50); assertEquals(result.getColumnByIndex(0).getId(), "City"); assertEquals(result.getColumnByIndex(1).getId(), "Department"); assertEquals(result.getColumnByIndex(2).getId(), "Employee"); assertEquals(result.getColumnByIndex(3).getId(), "Amount"); assertEquals(result.getColumnByIndex(0).getColumnType(), ColumnType.LABEL); assertEquals(result.getColumnByIndex(1).getColumnType(), ColumnType.LABEL); assertEquals(result.getColumnByIndex(2).getColumnType(), ColumnType.LABEL); assertEquals(result.getColumnByIndex(3).getColumnType(), ColumnType.NUMBER); assertEquals(result.getValueAt(0, 0), "Barcelona"); assertEquals(result.getValueAt(0, 1), "Engineering"); assertEquals(result.getValueAt(0, 2), "Roxie Foraker"); assertEquals(result.getValueAt(0, 3), 120.35d); assertNotNull(result.getColumnById("City")); assertNotNull(result.getColumnById("Department")); assertNotNull(result.getColumnById("Employee")); assertNotNull(result.getColumnById("Amount")); assertNotNull(result.getColumnById("CITY")); assertNotNull(result.getColumnById("DEPARTMENT")); assertNotNull(result.getColumnById("EMPLOYEE")); assertNotNull(result.getColumnById("AMOUNT")); assertNotNull(result.getColumnById("city")); assertNotNull(result.getColumnById("department")); assertNotNull(result.getColumnById("employee")); assertNotNull(result.getColumnById("amount")); } @Test public void testDataSetMetadataColumns() throws Exception { DataSetMetadata result = dataSetManager.getDataSetMetadata(EXPENSE_REPORTS); assertEquals(result.getNumberOfColumns(), 6); assertEquals(result.getNumberOfRows(), 50); List<String> columnIds = result.getColumnIds(); assertEquals(columnIds.size(), 6); assertTrue(containsIgnoreCase(columnIds, COLUMN_ID)); assertTrue(containsIgnoreCase(columnIds, COLUMN_CITY)); assertTrue(containsIgnoreCase(columnIds, COLUMN_DEPARTMENT)); assertTrue(containsIgnoreCase(columnIds, COLUMN_EMPLOYEE)); assertTrue(containsIgnoreCase(columnIds, COLUMN_DATE)); assertTrue(containsIgnoreCase(columnIds, COLUMN_AMOUNT)); assertEquals(result.getColumnType("Expenses_id"), ColumnType.NUMBER); assertEquals(result.getColumnType("City"), ColumnType.LABEL); assertEquals(result.getColumnType("Department"), ColumnType.LABEL); assertEquals(result.getColumnType("Employee"), ColumnType.LABEL); assertEquals(result.getColumnType("Creation_date"), ColumnType.DATE); assertEquals(result.getColumnType("Amount"), ColumnType.NUMBER); assertEquals(result.getColumnType("expenses_id"), ColumnType.NUMBER); assertEquals(result.getColumnType("city"), ColumnType.LABEL); assertEquals(result.getColumnType("department"), ColumnType.LABEL); assertEquals(result.getColumnType("employee"), ColumnType.LABEL); assertEquals(result.getColumnType("creation_date"), ColumnType.DATE); assertEquals(result.getColumnType("amount"), ColumnType.NUMBER); assertEquals(result.getColumnType("EXPENSES_ID"), ColumnType.NUMBER); assertEquals(result.getColumnType("CITY"), ColumnType.LABEL); assertEquals(result.getColumnType("DEPARTMENT"), ColumnType.LABEL); assertEquals(result.getColumnType("EMPLOYEE"), ColumnType.LABEL); assertEquals(result.getColumnType("CREATION_DATE"), ColumnType.DATE); assertEquals(result.getColumnType("AMOUNT"), ColumnType.NUMBER); } public boolean containsIgnoreCase(List<String> list, String str) { for (String element : list) { if (element.equalsIgnoreCase(str)) { return true; } } return false; } }