/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved. */ package org.pentaho.test.platform.plugin; import org.pentaho.commons.connection.DataUtilities; import org.pentaho.commons.connection.IPentahoMetaData; import org.pentaho.commons.connection.IPentahoResultSet; import org.pentaho.commons.connection.memory.MemoryMetaData; import org.pentaho.commons.connection.memory.MemoryResultSet; import org.pentaho.platform.api.engine.AuditException; import org.pentaho.platform.api.engine.IOutputHandler; import org.pentaho.platform.api.engine.IRuntimeContext; import org.pentaho.platform.api.engine.InvalidParameterException; import org.pentaho.platform.api.repository.ContentException; import org.pentaho.platform.api.repository.IRuntimeElement; import org.pentaho.platform.api.repository.IRuntimeRepository; import org.pentaho.platform.api.repository.RepositoryException; import org.pentaho.platform.api.util.PentahoChainedException; import org.pentaho.platform.engine.core.output.SimpleOutputHandler; import org.pentaho.platform.engine.core.solution.SimpleParameterProvider; import org.pentaho.platform.engine.core.system.PathBasedSystemSettings; import org.pentaho.platform.engine.core.system.StandaloneSession; import org.pentaho.platform.engine.services.runtime.SimpleRuntimeElement; import org.pentaho.platform.plugin.services.connections.sql.SQLResultSetException; import org.pentaho.platform.plugin.services.messages.Messages; import org.pentaho.platform.repository.SimpleRuntimeRepository; import org.pentaho.platform.util.FileHelper; import org.pentaho.platform.util.JVMParameterProvider; import org.pentaho.test.platform.engine.core.BaseTest; import org.pentaho.test.platform.utils.TestResourceLocation; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.math.BigDecimal; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; //import java.text.SimpleDateFormat; //import org.pentaho.platform.api.engine.IActionParameter; @SuppressWarnings( "nls" ) public class MultipleComponentIT extends BaseTest { /** * This Test Case runs multiple small action sequences which improve test coverage. */ private static final String HW_TEST_NAME = "MultipleComponentTest_HelloWorld_"; //$NON-NLS-1$ private static final String HW_TEST_EXTN = ".txt"; //$NON-NLS-1$ private static final String RC_TEST_NAME = "MultipleComponentTest_ReportCharts_"; //$NON-NLS-1$ // private static final String RC_TEST_EXTN = ".html"; //$NON-NLS-1$ // // private static final String DS_TEST_NAME = "MultipleComponentTest_DynamicSQL_"; //$NON-NLS-1$ // // private static final String DS_TEST_EXTN = ".html"; //$NON-NLS-1$ private ByteArrayOutputStream lastStream; private static final String SOLUTION_PATH = TestResourceLocation.TEST_RESOURCES + "/solution"; public String getSolutionPath() { return SOLUTION_PATH; } public Map getRequiredListeners() { Map listeners = super.getRequiredListeners(); listeners.put( "jfree-report", "jfree-report" ); //$NON-NLS-1$ //$NON-NLS-2$ return listeners; } public void startTest() { super.startTest(); } public void finishTest() { super.finishTest(); } public String getBaseUrl() { return "http://localhost:9876/pentaho/"; //$NON-NLS-1$ } protected OutputStream getOutputStream( String testName, String extension ) { // // The reportchart reports are huge (>500k). So, for these, write the // output to a file (in test/tmp). Otherwise, use a ByteArrayOutputStream // if ( testName.indexOf( RC_TEST_NAME ) >= 0 ) { return super.getOutputStream( testName, extension ); } else { lastStream = new ByteArrayOutputStream(); return lastStream; } } protected InputStream getInputStreamFromOutput( String testName, String extension ) { // // Either read from the file for the report charts, or just // return the byte array output stream wrapped as an input stream. // if ( testName.indexOf( RC_TEST_NAME ) >= 0 ) { return super.getInputStreamFromOutput( testName, extension ); } else { return new ByteArrayInputStream( lastStream.toByteArray() ); } } public void setUp() { super.setUp(); } public void tearDown() { super.tearDown(); } public IOutputHandler getOutputHandler( OutputStream stream ) { SimpleOutputHandler outputHandler = new SimpleOutputHandler( stream, true ); // Allow feedback for this test outputHandler.setOutputPreference( IOutputHandler.OUTPUT_TYPE_DEFAULT ); return outputHandler; } private IPentahoResultSet getResultSet() { Object[][] columnHeaders = new Object[][] { { "COL1", "COL2", "COL3" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ IPentahoMetaData md = new MemoryMetaData( columnHeaders, null ); MemoryResultSet rs = new MemoryResultSet( md ); rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$ rs.isScrollable(); return rs; } private IPentahoResultSet getResultSetFromArray() { Object[][] columnHeaders = new Object[][] { { "COL1", "COL2", "COL3" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ Object[][] row = new Object[][] { { "VAL1", "VAL2", "VAL3" }, { "VAL4", "VAL5", "VAL6" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ return MemoryResultSet.createFromArrays( columnHeaders, row ); } @SuppressWarnings( "unused" ) private IPentahoResultSet getResultSetFromList() { List columnHeadersList = new ArrayList(); columnHeadersList.add( "COL1" ); //$NON-NLS-1$ columnHeadersList.add( "COL2" ); //$NON-NLS-1$ columnHeadersList.add( "COL3" ); //$NON-NLS-1$ List rowList = new ArrayList(); rowList.add( "VAL1" ); //$NON-NLS-1$ rowList.add( "VAL2" ); //$NON-NLS-1$ rowList.add( "VAL3" ); //$NON-NLS-1$ return MemoryResultSet.createFromLists( columnHeadersList, rowList ); } private IPentahoResultSet getResultSet2() { Object[][] columnHeaders = new Object[][] { { "COL1", "COL2", "COL3" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ List columnHeadersList = new ArrayList(); columnHeadersList.add( "COL1" ); //$NON-NLS-1$ columnHeadersList.add( "COL2" ); //$NON-NLS-1$ columnHeadersList.add( "COL3" ); //$NON-NLS-1$ MemoryMetaData md2 = new MemoryMetaData( columnHeaders, null ); // emd.getAttribute(1, 1, "COL1"); //$NON-NLS-1$ // emd.setBusinessColumns(columnHeadersList); MemoryResultSet rs = new MemoryResultSet( md2 ); rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$ return rs; } private IPentahoResultSet getResultSet3() { List columnHeadersList = new ArrayList(); columnHeadersList.add( "COL1" ); //$NON-NLS-1$ columnHeadersList.add( "COL2" ); //$NON-NLS-1$ columnHeadersList.add( "COL3" ); //$NON-NLS-1$ MemoryMetaData md3 = new MemoryMetaData( columnHeadersList ); MemoryResultSet rs = new MemoryResultSet( md3 ); rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$ return rs; } public void testHelloWorldComponent() { startTest(); String testName = HW_TEST_NAME + System.currentTimeMillis(); SimpleParameterProvider parameterProvider = new SimpleParameterProvider(); IRuntimeContext context = run( "/test/platform/HelloWorld.xaction", parameterProvider, testName, HW_TEST_EXTN ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertEquals( Messages.getInstance().getString( "BaseTest.USER_RUNNING_ACTION_SEQUENCE" ), IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus() ); //$NON-NLS-1$ InputStream is = this.getInputStreamFromOutput( testName, HW_TEST_EXTN ); assertNotNull( is ); // Did the test execute properly... String lookingFor = "\nHello World. (2B || !2B) That is the question\n"; //$NON-NLS-1$ //$NON-NLS-2$ String wasRead = FileHelper.getStringFromInputStream( is ); assertEquals( wasRead, lookingFor ); finishTest(); } /* * public void testCrosstab() { startTest(); IRuntimeContext context = run("test", "rules", "CrossTabTest.xaction"); * //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertEquals( * Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), IRuntimeContext.RUNTIME_STATUS_SUCCESS, * context.getStatus()); //$NON-NLS-1$ IActionParameter rtn = context.getOutputParameter("rule-result"); //$NON-NLS-1$ * assertNotNull(rtn); IPentahoResultSet resultset = (IPentahoResultSet) rtn.getValue(); * assertEquals(resultset.getRowCount(), 7); Object[][] colHeaders = resultset.getMetaData().getColumnHeaders(); * assertEquals(colHeaders[0][0], "DEPARTMENT"); //$NON-NLS-1$ assertEquals(colHeaders[0][1], "Central"); //$NON-NLS-1$ * assertEquals(colHeaders[0][2], "Western"); //$NON-NLS-1$ assertEquals(colHeaders[0][3], "Southern"); //$NON-NLS-1$ * assertEquals(colHeaders[0][4], "Eastern"); //$NON-NLS-1$ * * finishTest(); } */ public void testMiscExceptionClasses() { // Making sure we create an instance of all the Pentaho // Exception classes. startTest(); Exception ex = new RepositoryException(); Exception ex2 = new RepositoryException( "Ignored" ); //$NON-NLS-1$ Exception ex3 = new RepositoryException( ex2 ); Exception ex4 = new RepositoryException( "Ignored", ex3 ); //$NON-NLS-1$ Exception ex5 = new AuditException(); Exception ex6 = new AuditException( "Ignored" ); //$NON-NLS-1$ Exception ex7 = new AuditException( "Ignored", ex ); //$NON-NLS-1$ Exception ex8 = new AuditException( ex4 ); ex = new ContentException( "Ignored" ); //$NON-NLS-1$ ex = new ContentException( "Ignored", ex5 ); //$NON-NLS-1$ ex = new ContentException( ex6 ); ex = new InvalidParameterException(); ex = new SQLResultSetException(); ex = new PentahoChainedException(); ex = new PentahoChainedException( "Ignored" ); //$NON-NLS-1$ ex = new PentahoChainedException( "Ignored", ex7 ); //$NON-NLS-1$ ex = new PentahoChainedException( ex8 ); finishTest(); } /* * public void testReportCharts() { startTest(); SimpleParameterProvider parameterProvider = new * SimpleParameterProvider(); parameterProvider.setParameter("chart_type", "multipie"); //$NON-NLS-1$ //$NON-NLS-2$ * parameterProvider.setParameter("output-type", "html"); //$NON-NLS-1$ //$NON-NLS-2$ long curTime = * System.currentTimeMillis(); String testName = RC_TEST_NAME + "multipie_" + curTime; //$NON-NLS-1$ IRuntimeContext * context = run( "test", "reporting/JFreeReportChartTypes", "JFreeReport_Chart_ChartTypes.xaction", * parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertEquals( * Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), IRuntimeContext.RUNTIME_STATUS_SUCCESS, * context.getStatus()); //$NON-NLS-1$ InputStream is = this.getInputStreamFromOutput(testName, RC_TEST_EXTN); * assertNotNull(is); try { is.close(); } catch (Exception ignored) { } * * parameterProvider.setParameter("chart_type", "line"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + "line_" * + curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * parameterProvider.setParameter("chart_type", "area"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + "area_" * + curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * parameterProvider.setParameter("chart_type", "stackedarea"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + * "stackedarea_" + curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * parameterProvider.setParameter("chart_type", "bar"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + "bar_" + * curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * parameterProvider.setParameter("chart_type", "stackedbar"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + * "stackedbar_" + curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * parameterProvider.setParameter("chart_type", "stackedbarpercentages"); //$NON-NLS-1$ //$NON-NLS-2$ testName = * RC_TEST_NAME + "stackedbarpercentages_" + curTime; //$NON-NLS-1$ context = run( "test", * "reporting/JFreeReportChartTypes", "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, * RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertEquals( * Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), IRuntimeContext.RUNTIME_STATUS_SUCCESS, * context.getStatus()); //$NON-NLS-1$ is = this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); * try { is.close(); } catch (Exception ignored) { } * * parameterProvider.setParameter("chart_type", "pie"); //$NON-NLS-1$ //$NON-NLS-2$ testName = RC_TEST_NAME + "pie_" + * curTime; //$NON-NLS-1$ context = run( "test", "reporting/JFreeReportChartTypes", * "JFreeReport_Chart_ChartTypes.xaction", parameterProvider, testName, RC_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ is = * this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); try { is.close(); } catch (Exception * ignored) { } * * finishTest(); } */ /* * public void testDynamicSQLAndSecureFilter() { startTest(); SimpleParameterProvider parameterProvider = new * SimpleParameterProvider(); // Add no parameters yet for first run String testName = DS_TEST_NAME + * "parameterResponse_" + System.currentTimeMillis(); //$NON-NLS-1$ IRuntimeContext context = run( "test", * "reporting", "DynamicSQLSample.xaction", parameterProvider, testName, DS_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ * //$NON-NLS-3$ assertEquals( Messages.getInstance().getString("BaseTest.USER_RUNNING_ACTION_SEQUENCE"), * IRuntimeContext.RUNTIME_STATUS_SUCCESS, context.getStatus()); //$NON-NLS-1$ // Should have created a Feedback html * page in the output. InputStream is = this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); * String feedbackHTML = FileHelper.getStringFromInputStream(is); assertNotNull(feedbackHTML); // Make sure it's * feedback HTML we have... * assertTrue(feedbackHTML.indexOf("Use this form to supply the parameters required for this content") > 0); * //$NON-NLS-1$ assertTrue(feedbackHTML.indexOf("Select: Department or Position") > 0); //$NON-NLS-1$ // OK - now, * supply all the parameters and re-run. parameterProvider.setParameter("deptorposn", "department"); //$NON-NLS-1$ * //$NON-NLS-2$ parameterProvider.setParameter("type", "html"); //$NON-NLS-1$ //$NON-NLS-2$ * parameterProvider.setParameter("region", "Central"); //$NON-NLS-1$ //$NON-NLS-2$ testName = DS_TEST_NAME + "report_" * + System.currentTimeMillis(); //$NON-NLS-1$ context = run("test", "reporting", "DynamicSQLSample.xaction", * parameterProvider, testName, DS_TEST_EXTN); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ * assertEquals(context.getStatus(), IRuntimeContext.RUNTIME_STATUS_SUCCESS); // Should have created a report html * page in the output. is = this.getInputStreamFromOutput(testName, RC_TEST_EXTN); assertNotNull(is); String * reportHTML = FileHelper.getStringFromInputStream(is); assertNotNull(reportHTML); // Insure it has information * assertTrue(reportHTML.indexOf("Professional Services") > 0); //$NON-NLS-1$ * assertTrue(reportHTML.indexOf("20,068,039") > 0); //$NON-NLS-1$ finishTest(); } */ public void testSimpleRuntime() { // The simple runtime is used by the standalone distribution. // This provides some simple tests to exercise the code... startTest(); StandaloneSession session = new StandaloneSession( Messages.getInstance().getString( "BaseTest.DEBUG_JUNIT_SESSION" ) ); //$NON-NLS-1$ IRuntimeRepository srr = new SimpleRuntimeRepository(); srr.setSession( session ); IRuntimeElement ele1 = srr.loadElementById( "instanceid", null ); //$NON-NLS-1$ IRuntimeElement ele2 = srr.newRuntimeElement( "parent", "parentType", true ); //$NON-NLS-1$ //$NON-NLS-2$ IRuntimeElement ele3 = srr.newRuntimeElement( "parentid", "parentType", "solutionId", true ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ SimpleRuntimeElement sre = (SimpleRuntimeElement) srr.loadElementById( "instanceid", null ); //$NON-NLS-1$ List list = sre.getMessages(); if ( list != null ) { for ( int i = 0; i < list.size(); i++ ) { System.out.println( "Message " + ( i + 1 ) + list.get( i ) ); //$NON-NLS-1$ } sre.setParentId( "parentid1" ); //$NON-NLS-1$ sre.setParentType( "parentidType1" ); //$NON-NLS-1$ sre.setSolutionId( "solutionId1" ); //$NON-NLS-1$ sre.setReadOnly( true ); boolean isReadOnly = sre.getReadOnly(); String parentId = sre.getParentId(); String parentIdType = sre.getParentType(); String solutionId = sre.getSolutionId(); assertEquals( isReadOnly, true ); assertEquals( parentId, "parentid1" ); //$NON-NLS-1$ assertEquals( parentIdType, "parentidType1" ); //$NON-NLS-1$ assertEquals( solutionId, "solutionId1" ); //$NON-NLS-1$ } int revision = sre.getRevision(); System.out.println( "Revision Value is" + revision ); //$NON-NLS-1$ sre.setStringProperty( "parentId", "value" ); //$NON-NLS-1$ //$NON-NLS-2$ BigDecimal tstBD = new BigDecimal( "2.4" ); //$NON-NLS-1$ ele2.setBigDecimalProperty( "junkBD", tstBD ); //$NON-NLS-1$ BigDecimal bd = ele2.getBigDecimalProperty( "junkBD" ); //$NON-NLS-1$ assertEquals( bd, tstBD ); Date tstDT = new Date(); ele3.setDateProperty( "junkDT", tstDT ); //$NON-NLS-1$ Date dt = ele3.getDateProperty( "junkDT" ); //$NON-NLS-1$ assertEquals( tstDT, dt ); List l = new ArrayList(); l.add( "one" ); //$NON-NLS-1$ l.add( "two" ); //$NON-NLS-1$ ele1.setListProperty( "SOMELIST", l ); //$NON-NLS-1$ assertEquals( ele1.getListProperty( "SOMELIST" ), l ); //$NON-NLS-1$ Long aLong = new Long( 5 ); ele2.setLongProperty( "SOMELONG", aLong ); //$NON-NLS-1$ assertEquals( ele2.getLongProperty( "SOMELONG", null ), aLong ); //$NON-NLS-1$ assertEquals( ele2.getLongProperty( "SOMELONG", 5 ), 5 ); //$NON-NLS-1$ Map mapProperty = new HashMap(); mapProperty.put( "mapKey", "mapValue" ); //$NON-NLS-1$ //$NON-NLS-2$ ele3.setMapProperty( "SOMEMAP", mapProperty ); //$NON-NLS-1$ assertEquals( ele3.getMapProperty( "SOMEMAP" ), mapProperty ); //$NON-NLS-1$ ele1.setStringProperty( "SOMESTRING", "SomeStringValue" ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( ele1.getStringProperty( "SOMESTRING" ), "SomeStringValue" ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( ele2.getStringProperty( "DOESNTEXIST", "SomeDefault" ), "SomeDefault" ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertNull( ele1.getStringProperty( "DOESNTEXIST" ) ); //$NON-NLS-1$ assertNull( ele1.getBigDecimalProperty( "DOESNTEXIST" ) ); //$NON-NLS-1$ assertNull( ele2.getDateProperty( "DOESNTEXIST" ) ); //$NON-NLS-1$ assertNull( ele3.getListProperty( "DOESNTEXIST" ) ); //$NON-NLS-1$ assertEquals( ele2.getLongProperty( "DOESNTEXIST", 2 ), 2 ); //$NON-NLS-1$ assertEquals( ele2.getLongProperty( "DOESNTEXIST", new Long( 2 ) ), new Long( 2 ) ); //$NON-NLS-1$ assertEquals( ele1.getBigDecimalProperty( "DOESNTEXIST", new BigDecimal( "0.23" ) ), new BigDecimal( "0.23" ) ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ Date tmpDate = new Date(); assertEquals( ele1.getDateProperty( "DOESNTEXIST", tmpDate ), tmpDate ); //$NON-NLS-1$ Set parmNames = ele1.getParameterNames(); assertNotNull( parmNames ); assertFalse( srr.usesHibernate() ); assertEquals( ele2.getParameterType( "SOMELONG" ), "java.lang.Long" ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( ele2.getParentType(), "parentType" ); //$NON-NLS-1$ assertEquals( ele3.getParentId(), "parentid" ); //$NON-NLS-1$ assertEquals( ele1.getInstanceId(), "instanceid" ); //$NON-NLS-1$ finishTest(); } public void testDataUtility() { startTest(); IPentahoResultSet rs = getResultSet(); String xmlString = DataUtilities.getXMLString( rs ); assertTrue( xmlString.indexOf( "DATA2" ) > 0 ); //$NON-NLS-1$ finishTest(); } public void testDataUtility1() { startTest(); IPentahoResultSet rs1 = getResultSetFromArray(); String xmlString1 = DataUtilities.getXMLString( rs1 ); assertTrue( xmlString1.indexOf( "VAL1" ) > 0 ); //$NON-NLS-1$ finishTest(); } public void testDataUtility3() { startTest(); IPentahoResultSet rs3 = getResultSet2(); String xmlString3 = DataUtilities.getXMLString( rs3 ); assertTrue( xmlString3.indexOf( "DATA2" ) > 0 ); //$NON-NLS-1$ finishTest(); } public void testDataUtility4() { startTest(); IPentahoResultSet rs4 = getResultSet3(); String xmlString4 = DataUtilities.getXMLString( rs4 ); assertTrue( xmlString4.indexOf( "DATA2" ) > 0 ); //$NON-NLS-1$ finishTest(); } public void testJVMParameterProvider() { startTest(); System.setProperty( "teststring", "test string" ); //$NON-NLS-1$//$NON-NLS-2$ System.setProperty( "testlong", "32" ); //$NON-NLS-1$//$NON-NLS-2$ System.setProperty( "testdecimal", "66.6" ); //$NON-NLS-1$//$NON-NLS-2$ Date someDate = new Date(); System.setProperty( "testdate", DateFormat.getInstance().format( someDate ) ); //$NON-NLS-1$ JVMParameterProvider provider = new JVMParameterProvider(); // assertEquals(someDate, provider.getDateParameter("testdate", null) ); //$NON-NLS-1$ assertEquals( someDate, provider.getDateParameter( "bogus", someDate ) ); //$NON-NLS-1$ assertEquals( 32, provider.getLongParameter( "testlong", 0 ) ); //$NON-NLS-1$ assertEquals( "test string", provider.getStringParameter( "teststring", null ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( new BigDecimal( "66.6" ), provider.getDecimalParameter( "testdecimal", null ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( "test string", provider.getParameter( "teststring" ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals( "string", provider.getParameterType( "teststring" ) ); //$NON-NLS-1$ //$NON-NLS-2$ Iterator it = provider.getParameterNames(); while ( it.hasNext() ) { String pName = (String) it.next(); System.out.println( pName + "=" + provider.getStringParameter( pName, null ) ); //$NON-NLS-1$ } finishTest(); } public void testJVMParameterProviderDifferentPath() { startTest(); JVMParameterProvider provider = new JVMParameterProvider(); assertEquals( 99, provider.getLongParameter( "bogus", 99 ) ); //$NON-NLS-1$ assertEquals( new BigDecimal( "99" ), provider.getDecimalParameter( "bogus", new BigDecimal( "99" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ finishTest(); } public void testJVMParameterProviderDifferentPath2() { startTest(); JVMParameterProvider provider = new JVMParameterProvider(); try { Object parameterValue = provider.getDecimalParameter( "bogus", null ); //$NON-NLS-1$ System.out.println( "Paramater Value Received is " + parameterValue ); //$NON-NLS-1$ } catch ( Exception e ) { e.printStackTrace(); assertTrue( "Expected exception was caught", true ); //$NON-NLS-1$ } finishTest(); } /* * public void testUIUtil() { List messages = new ArrayList(); messages.add("Error Message One"); //$NON-NLS-1$ * messages.add("Error Message Two"); //$NON-NLS-1$ * messages.add("Error: This is the first error Error: message - MultipleComponentTest"); //$NON-NLS-1$ StringBuffer * messageBuffer = new StringBuffer(); UIUtil.formatErrorMessage("text/html", "Error Test", messages, messageBuffer); * //$NON-NLS-1$ //$NON-NLS-2$ String result = messageBuffer.toString(); * assertTrue(result.indexOf("Error Message Two")>=0); //$NON-NLS-1$ String msg = UIUtil.getFirstError(messages); * assertTrue(msg.indexOf("MultipleComponentTest")>=0); //$NON-NLS-1$ IPentahoResultSet rs = getResultSet(); * StringBuffer formattedRs = new StringBuffer(); UIUtil.formatResultSetAsHTMLRows(rs, formattedRs); * System.out.println(formattedRs.toString()); assertTrue(formattedRs.indexOf("<th>COL3</th>")>=0); //$NON-NLS-1$ } */ public void testPathBasedSystemSettings() { PathBasedSystemSettings settings = new PathBasedSystemSettings(); String cfgPathKey = settings.getSystemSetting( PathBasedSystemSettings.SYSTEM_CFG_PATH_KEY, "" ); //$NON-NLS-1$ List list = settings.getSystemSettings( PathBasedSystemSettings.SYSTEM_CFG_PATH_KEY ); for ( int i = 0; i < list.size(); i++ ) { System.out.println( "System Settings" + ( i + 1 ) + list.get( i ) ); //$NON-NLS-1$ } System.setProperty( PathBasedSystemSettings.SYSTEM_CFG_PATH_KEY, "" ); //$NON-NLS-1$ settings.getSystemSetting( "c:/code", PathBasedSystemSettings.SYSTEM_CFG_PATH_KEY, null ); //$NON-NLS-1$ System.setProperty( PathBasedSystemSettings.SYSTEM_CFG_PATH_KEY, cfgPathKey ); assertTrue( true ); } public static void main( String[] args ) { MultipleComponentIT test = new MultipleComponentIT(); try { test.setUp(); /* * test.testHelloWorldComponent(); // test.testCrosstab(); test.testMiscExceptionClasses(); // * test.testReportCharts(); // test.testDynamicSQLAndSecureFilter(); test.testPivotViewComponent(); * test.testSimpleRuntime(); test.testDataUtility(); test.testDataUtility1(); * test.testDataUtility2(); test.testDataUtility3(); test.testDataUtility4(); * test.testJVMParameterProvider(); test.testJVMParameterProviderDifferentPath(); * test.testJVMParameterProviderDifferentPath2(); test.testUIUtil(); */ test.testPathBasedSystemSettings(); } finally { test.tearDown(); BaseTest.shutdown(); } } }