/* * 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.apache.commons.io.IOUtils; import org.dashbuilder.DataSetCore; import org.dashbuilder.dataprovider.DataSetProviderRegistry; import org.dashbuilder.dataset.DataSet; import org.dashbuilder.dataset.DataSetFormatter; import org.dashbuilder.dataset.DataSetManager; import org.dashbuilder.dataset.def.DataSetDefRegistry; import org.dashbuilder.dataset.def.ElasticSearchDataSetDef; import org.dashbuilder.dataset.json.DataSetDefJSONMarshaller; import org.junit.Before; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.URL; /** * <p>Base test for ElasticSearch providers and data sets.</p> * * @since 0.3.0 */ public class ElasticSearchDataSetTestBase { static final Logger logger = LoggerFactory.getLogger(ElasticSearchDataSetTestBase.class); // Config files & example data for running EL server. public static final String EL_EXAMPLE_INDEX = "expensereports"; public static final String EL_EXAMPLE_TYPE = "expense"; public static final String EL_EXAMPLE_DEPT_ENGINEERING = "Engineering"; public static final String EL_EXAMPLE_DEPT_SERVICES = "Services"; public static final String EL_EXAMPLE_DEPT_MANAGEMENT = "Management"; public static final String EL_EXAMPLE_DEPT_SALES = "Sales"; public static final String EL_EXAMPLE_DEPT_SUPPORT = "Support"; public static final String EL_EXAMPLE_CITY_BARCELONA = "Barcelona"; public static final String EL_EXAMPLE_CITY_MADRID = "Madrid"; public static final String EL_EXAMPLE_CITY_RALEIGH = "Raleigh"; public static final String EL_EXAMPLE_CITY_LONDON = "London"; public static final String EL_EXAMPLE_EMP_ROXIE = "Roxie Foraker"; public static final String EL_EXAMPLE_EMP_JAMIE = "Jamie Gilbeau"; public static final String EL_EXAMPLE_EMP_NITA = "Nita Marling"; public static final String EL_EXAMPLE_EMP_HANNA = "Hannah B. Mackey"; public static final String EL_EXAMPLE_EMP_PATRICIA = "Patricia J. Behr"; protected DataSetManager dataSetManager; protected DataSetDefRegistry dataSetDefRegistry; protected DataSetDefJSONMarshaller jsonMarshaller; protected DataSetFormatter dataSetFormatter; @Before public void setUp() throws Exception { dataSetManager = DataSetCore.get().getDataSetManager(); dataSetDefRegistry = DataSetCore.get().getDataSetDefRegistry(); jsonMarshaller = DataSetCore.get().getDataSetDefJSONMarshaller(); dataSetFormatter = new DataSetFormatter(); DataSetProviderRegistry dataSetProviderRegistry = DataSetCore.get().getDataSetProviderRegistry(); dataSetProviderRegistry.registerDataProvider(ElasticSearchDataSetProvider.get()); } /** * Registers a dataset given into the <code>resource</code> definition. * * @param resource The dataset definition resource. */ protected ElasticSearchDataSetDef _registerDataSet(String resource) throws Exception { // Register the SQL data set URL fileURL = Thread.currentThread().getContextClassLoader().getResource(resource); String json = IOUtils.toString(fileURL); ElasticSearchDataSetDef def = (ElasticSearchDataSetDef) jsonMarshaller.fromJson(json); dataSetDefRegistry.registerDataSetDef(def); return def; } protected static void log(Object message) { System.out.print(message); if (logger.isDebugEnabled()) { logger.debug(message.toString()); } } /** * Helper method to print to standard output the data set values. */ protected void printDataSet(DataSet dataSet) { log(dataSetFormatter.formatDataSet(dataSet, "{", "}", ",\n", "\"", "\"", ", ") + "\n\n"); } }