solutionEngine.execute( actionSeqPath, processId, false, true, instanceId, false, parameterProviders, outputHandler, null, urlFactory, messages );
public void testMultiOutput() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "services/MultiOutputTest.xaction" ); IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test1a.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); finishTest(); }
public int execute() { PentahoSystem.systemEntryPoint(); try { // create a generic session object StandaloneSession session = new StandaloneSession( userId ); solutionEngine = PentahoSystem.get( SolutionEngine.class, session ); solutionEngine.init( session ); SimpleParameterProvider parameterProvider = new SimpleParameterProvider( parameters ); HashMap<String, IParameterProvider> parameterProviderMap = new HashMap<String, IParameterProvider>(); parameterProviderMap.put( IParameterProvider.SCOPE_REQUEST, parameterProvider ); IPentahoRequestContext requestContext = PentahoRequestContextHolder.getRequestContext(); IPentahoUrlFactory urlFactory = new SimpleUrlFactory( requestContext.getContextPath() ); //$NON-NLS-1$ String processName = description; boolean persisted = false; List messages = new ArrayList(); outputStream = new ByteArrayOutputStream( 0 ); SimpleOutputHandler outputHandler = null; if ( outputStream != null ) { outputHandler = new SimpleOutputHandler( outputStream, false ); outputHandler.setOutputPreference( IOutputHandler.OUTPUT_TYPE_DEFAULT ); } solutionEngine.execute( actionSequence, processName, false, true, null, persisted, parameterProviderMap, outputHandler, null, urlFactory, messages ); } finally { PentahoSystem.systemExitPoint(); } return solutionEngine.getStatus(); }
solutionEngine.execute( xactionStr, actionSequence, "action sequence test", false, true, instanceId, false, //$NON-NLS-1$ parameterProviderMap, null, null, urlFactory, messages ); } catch ( Exception e ) {
solutionEngine.execute( xactionStr, xactionName, "simple output test", false, true, null, false, new HashMap(), //$NON-NLS-1$ null, null, new SimpleUrlFactory( "" ), new ArrayList() ); //$NON-NLS-1$ IParameterManager paramManager = runtimeContext.getParameterManager();
solutionEngine.execute( xactionStr, "test1.xaction", "empty action sequence test", false, true, instanceId, //$NON-NLS-1$ //$NON-NLS-2$ false, parameterProviderMap, null, null, urlFactory, messages ); assertNotNull( "RuntimeContext is null", runtimeContext );
public void testBadOutput() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo-bad5.xaction" ); PojoComponentTest.doneCalled = false; PojoComponentTest.executeCalled = false; PojoComponentTest.validateCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test", "invalid class setting test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "Action sequence succeeded", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_FAILURE ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
/** * Test that unused parameters being passed in do not impact the running of the PojoComponent. A warning is written to * the log for user feedback on execution. */ public void testUnusedInput() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo-bad4.xaction" ); PojoComponentTest.doneCalled = false; PojoComponentTest.executeCalled = false; PojoComponentTest.validateCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test", "invalid class setting test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "Action sequence succeeded", IRuntimeContext.RUNTIME_STATUS_SUCCESS, runtimeContext.getStatus() ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
public void testMissingClassSetting() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo-bad1.xaction" ); PojoComponentTest.doneCalled = false; PojoComponentTest.executeCalled = false; PojoComponentTest.validateCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test", "invalid class setting test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "execute was called", false, PojoComponentTest.executeCalled ); assertEquals( "validate was called", false, PojoComponentTest.validateCalled ); assertEquals( "Action sequence validation succeeded", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_FAIL ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
public void testBadValidate() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo-bad3.xaction" ); PojoComponentTest.doneCalled = false; PojoComponentTest.executeCalled = false; PojoComponentTest.validateCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test", "invalid class setting test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "execute was called", false, PojoComponentTest.executeCalled ); assertEquals( "validate was not called", true, PojoComponentTest.validateCalled ); assertEquals( "Action sequence execution succeeded", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_FAILURE ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
protected ByteArrayOutputStream getContentAsStream( final String mimeType ) { IPentahoSession userSession = getSession(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); SimpleOutputHandler outputHandler = new SimpleOutputHandler( outputStream, true ); outputHandler.setOutputPreference( outputPreference ); ISolutionEngine solutionEngine = PentahoSystem.get( ISolutionEngine.class, getSession() ); solutionEngine.setLoggingLevel( getLoggingLevel() ); solutionEngine.init( userSession ); IRuntimeContext context = null; try { String actionSeqPath = ActionInfo.buildSolutionPath( solutionName, actionPath, actionName ); context = solutionEngine .execute( actionSeqPath, Messages.getInstance().getString( "BaseTest.DEBUG_JUNIT_TEST" ), false, true, instanceId, false, getParameterProviders(), outputHandler, null, urlFactory, getMessages() ); //$NON-NLS-1$ } finally { if ( context != null ) { context.dispose(); } } return outputStream; }
public void testBadClassSetting() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo-bad2.xaction" ); PojoComponentTest.doneCalled = false; PojoComponentTest.executeCalled = false; PojoComponentTest.validateCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test", "invalid class setting test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "execute was called", false, PojoComponentTest.executeCalled ); assertEquals( "validate was called", false, PojoComponentTest.validateCalled ); assertEquals( "Action sequence validation succeeded", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_FAIL ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
public IRuntimeContext handleActionRequest( final int timeout, final int timeoutType ) { // Get the solution engine ISolutionEngine solutionEngine = PentahoSystem.get( ISolutionEngine.class, session ); if ( solutionEngine == null ) { Logger.error( this, Messages.getInstance().getErrorString( "BaseRequestHandler.ERROR_0001_NO_SOLUTION_ENGINE" ) ); //$NON-NLS-1$ return null; } solutionEngine.setCreateFeedbackParameterCallback( createFeedbackParameterCallback ); solutionEngine.setLoggingLevel( ILogger.DEBUG ); solutionEngine.init( session ); solutionEngine.setForcePrompt( forcePrompt ); if ( parameterXsl != null ) { solutionEngine.setParameterXsl( parameterXsl ); } dispose(); runtime = solutionEngine.execute( actionPath, processId, false, instanceEnds, instanceId, true, parameterProviders, outputHandler, this, urlFactory, messages ); // need to wait until this is complete // TODO // if this times out check the timeoutType before cancelling or // returning and leaving the component running return runtime; }
PojoComponentTest.doneCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "pojo1b.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); IActionParameter param = runtimeContext.getOutputParameter( "output1" );
public void testSimplestCase() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo4.xaction" ); PojoComponentTest.doneCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "pojo4.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); IActionParameter param = runtimeContext.getOutputParameter( "output1" ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertNotNull( "param is null", param ); assertEquals( "abcdeabcde", param.getValue().toString() ); assertEquals( "done() was called", false, PojoComponentTest.doneCalled ); assertEquals( "Action sequence execution failed", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_SUCCESS ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
PojoComponentTest.setActionSequenceResourceCalled = false; IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test1.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), outputHandler, null, new SimpleUrlFactory( "" ), new ArrayList() ); IActionParameter param = runtimeContext.getOutputParameter( "outputstream" );
public void testRuntimeInputsAndOutputs() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo5.xaction" ); IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "pojo5.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "Action sequence execution failed", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_SUCCESS ); IActionParameter param = runtimeContext.getOutputParameter( "output1" ); assertNotNull( "param is null", param ); assertEquals( "hello", param.getValue().toString() ); param = runtimeContext.getOutputParameter( "output2" ); assertNotNull( "param is null", param ); assertEquals( "world", param.getValue().toString() ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
@SuppressWarnings( "unchecked" ) private void execute( String actionSequenceFile, boolean exceptionOnError, IAction... actions ) throws ActionSequenceException { TestPluginManager pm = (TestPluginManager) PentahoSystem.get( IPluginManager.class ); for ( IAction action : actions ) { pm.addAction( action ); } // content outputs will write to this stream out = new ByteArrayOutputStream(); // create SimpleOutputHandler (to handle outputs of type "response.content") outputHandler = new SimpleOutputHandler( out, false ); outputHandler.setOutputPreference( IOutputHandler.OUTPUT_TYPE_DEFAULT ); IPentahoSession session = new StandaloneSession( "system" ); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); outputHandler.setSession( session ); String xactionStr = ServiceTestHelper.getXAction( "src/test/resources/solution/test/ActionDelegateTest", actionSequenceFile ); // execute the action sequence, providing the outputHandler created above IRuntimeContext rc = solutionEngine.execute( xactionStr, actionSequenceFile, "action sequence to test the TestAction", false, true, null, false, new HashMap(), outputHandler, null, new SimpleUrlFactory( "" ), new ArrayList() ); int status = rc.getStatus(); if ( status == IRuntimeContext.PARAMETERS_FAIL || status == IRuntimeContext.RUNTIME_CONTEXT_RESOLVE_FAIL || status == IRuntimeContext.RUNTIME_STATUS_FAILURE || status == IRuntimeContext.RUNTIME_STATUS_INITIALIZE_FAIL || status == IRuntimeContext.RUNTIME_STATUS_SETUP_FAIL ) { throw new ActionSequenceException( "Action sequence failed!" ); } }
providers.put( IParameterProvider.SCOPE_REQUEST, inputs ); IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "test1a.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ providers, null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext );
public IRuntimeContext run( ISolutionEngine solutionEngine, String actionPath, String instanceId, boolean persisted, IParameterProvider parameterProvider, IOutputHandler outputHandler ) { assertTrue( initOk ); info( Messages.getInstance().getString( "BaseTest.INFO_START_TEST_MSG", actionPath ) ); //$NON-NLS-1$ info( actionPath ); String baseUrl = ""; //$NON-NLS-1$ HashMap<String, IParameterProvider> parameterProviderMap = new HashMap<String, IParameterProvider>(); parameterProviderMap.put( IParameterProvider.SCOPE_REQUEST, parameterProvider ); IPentahoUrlFactory urlFactory = new SimpleUrlFactory( baseUrl ); dispose(); context = solutionEngine .execute( actionPath, Messages.getInstance().getString( "BaseTest.DEBUG_JUNIT_TEST" ), false, true, instanceId, persisted, parameterProviderMap, outputHandler, this, urlFactory, messages ); //$NON-NLS-1$ info( Messages.getInstance().getString( "BaseTest.INFO_FINISH_TEST_MSG", actionPath ) ); //$NON-NLS-1$ // TODO compare message stack with saved version // TODO perform comparisons between genereated content and golden copies return context; }