use of org.pentaho.platform.api.engine.IActionParameter in project pentaho-platform by pentaho.
the class TemplateUtilTest method testGetProperty.
public void testGetProperty() {
IRuntimeContext mockRuntimeContext = mock(IRuntimeContext.class);
IPentahoSession mockSession = mock(IPentahoSession.class);
IParameterManager mockParameterManager = mock(IParameterManager.class);
when(mockRuntimeContext.getParameterManager()).thenReturn(mockParameterManager);
when(mockRuntimeContext.getSession()).thenReturn(mockSession);
// Load up various parameter types to target code sections
Map<String, IActionParameter> paramMap = new HashMap<String, IActionParameter>();
IActionParameter param1 = new ActionParameter("param1", "String", "one", null, "defone");
paramMap.put("param1", param1);
Map<String, Object> inputMap = new HashMap<String, Object>();
inputMap.putAll(paramMap);
inputMap.put("param2", "two");
inputMap.put("param3", new TestObject("three"));
inputMap.put("param4", new TestObject[] { new TestObject("four-0"), new TestObject("four-1") });
inputMap.put("param5", createMockResultSet());
// Set up a captor to return the appropriate parameter
ArgumentCaptor<String> paramNameArgument = ArgumentCaptor.forClass(String.class);
when(mockRuntimeContext.getInputParameterValue(paramNameArgument.capture())).thenAnswer(new Answer() {
public Object answer(InvocationOnMock invocation) {
return inputMap.get(paramNameArgument.getValue());
}
});
when(mockParameterManager.getCurrentInputNames()).thenReturn(paramMap.keySet());
when(mockParameterManager.getAllParameters()).thenReturn(paramMap);
when(mockRuntimeContext.getInputNames()).thenReturn(inputMap.keySet());
// Now we can test
// action parameter
assertEquals("one", TemplateUtil.applyTemplate("{param1}", mockRuntimeContext));
// simple String
assertEquals("two", TemplateUtil.applyTemplate("{param2}", mockRuntimeContext));
// single arbitrary object
assertEquals("three", TemplateUtil.applyTemplate("{param3}", mockRuntimeContext));
// array of
assertEquals("four-0','four-1", TemplateUtil.applyTemplate("{param4}", mockRuntimeContext));
// arbitrary objects
// result set
assertEquals("key Value", TemplateUtil.applyTemplate("{param5}", mockRuntimeContext));
}
use of org.pentaho.platform.api.engine.IActionParameter in project pentaho-platform by pentaho.
the class PojoComponentTest method testSimplestCase.
public void testSimplestCase() {
startTest();
ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine();
try {
String xactionStr = ServiceTestHelper.getXAction(SOLUTION_PATH, "test/pojo/pojo4.xaction");
PojoComponentTest.doneCalled = false;
IRuntimeContext runtimeContext = // $NON-NLS-1$ //$NON-NLS-2$
solutionEngine.execute(// $NON-NLS-1$ //$NON-NLS-2$
xactionStr, // $NON-NLS-1$ //$NON-NLS-2$
"pojo4.xaction", // $NON-NLS-1$ //$NON-NLS-2$
"empty action sequence test", // $NON-NLS-1$ //$NON-NLS-2$
false, // $NON-NLS-1$ //$NON-NLS-2$
true, // $NON-NLS-1$ //$NON-NLS-2$
null, // $NON-NLS-1$ //$NON-NLS-2$
false, 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();
}
use of org.pentaho.platform.api.engine.IActionParameter in project pentaho-platform by pentaho.
the class PojoComponentTest method testSimplePojoInput.
public void testSimplePojoInput() {
startTest();
ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine();
try {
String xactionStr = ServiceTestHelper.getXAction(SOLUTION_PATH, "test/pojo/pojo1a.xaction");
PojoComponentTest.doneCalled = false;
PojoComponentTest.setSessionCalled = false;
PojoComponentTest.setLoggerCalled = false;
TestPojo1.int1 = 0;
TestPojo1.int2 = null;
SimpleParameterProvider inputs = new SimpleParameterProvider();
inputs.setParameter("int2", new Integer(22));
inputs.setParameter("bool2", new Boolean(true));
inputs.setParameter("long2", new Long(99));
inputs.setParameter("bigdecimal", new BigDecimal("77.7"));
inputs.setParameter("float2", new Float(44.4));
inputs.setParameter("double2", new Double(66.6));
Map providers = new HashMap();
providers.put(IParameterProvider.SCOPE_REQUEST, inputs);
IRuntimeContext runtimeContext = // $NON-NLS-1$ //$NON-NLS-2$
solutionEngine.execute(// $NON-NLS-1$ //$NON-NLS-2$
xactionStr, // $NON-NLS-1$ //$NON-NLS-2$
"test1a.xaction", // $NON-NLS-1$ //$NON-NLS-2$
"empty action sequence test", // $NON-NLS-1$ //$NON-NLS-2$
false, // $NON-NLS-1$ //$NON-NLS-2$
true, // $NON-NLS-1$ //$NON-NLS-2$
null, // $NON-NLS-1$ //$NON-NLS-2$
false, providers, null, null, new SimpleUrlFactory(""), new ArrayList());
assertNotNull("RuntimeContext is null", runtimeContext);
IActionParameter param = runtimeContext.getOutputParameter("output1");
assertNotNull("param is null", param);
assertEquals("setting is wrong", "value1", TestPojo1.setting1);
assertEquals("setting is wrong", "value2", TestPojo1.setting2);
assertEquals("setting is wrong", null, TestPojo1.setting3);
assertEquals("param is wrong", "abcdeabcde", param.getValue());
assertEquals("setInt2 failed", new Integer(22), TestPojo1.int2);
assertEquals("setBoolean2 failed", new Boolean(true), TestPojo1.bool2);
assertEquals("setLong2 failed", new Long(99), TestPojo1.long2);
assertEquals("setBigDecimal failed", new BigDecimal("77.7"), TestPojo1.bigDecimal);
assertEquals("setFloat2 failed", "44.4", TestPojo1.float2.toString());
assertEquals("setDouble2 failed", "66.6", TestPojo1.double2.toString());
assertTrue("done() was not called", PojoComponentTest.doneCalled);
assertTrue("setSession() was not called", PojoComponentTest.setSessionCalled);
assertTrue("setLogger() was not called", PojoComponentTest.setLoggerCalled);
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();
}
use of org.pentaho.platform.api.engine.IActionParameter in project pentaho-platform by pentaho.
the class PojoComponentTest method testSimplePojoInputFormat2.
public void testSimplePojoInputFormat2() {
// test the alternate action definition format
startTest();
ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine();
try {
String xactionStr = ServiceTestHelper.getXAction(SOLUTION_PATH, "test/pojo/pojo1-alternate.xaction");
PojoComponentTest.doneCalled = false;
PojoComponentTest.setSessionCalled = false;
PojoComponentTest.setLoggerCalled = false;
TestPojo1.int1 = 0;
TestPojo1.int2 = null;
SimpleParameterProvider inputs = new SimpleParameterProvider();
inputs.setParameter("int2", new Integer(22));
inputs.setParameter("bool2", new Boolean(true));
inputs.setParameter("long2", new Long(99));
inputs.setParameter("bigdecimal", new BigDecimal("77.7"));
inputs.setParameter("float2", new Float(44.4));
inputs.setParameter("double2", new Double(66.6));
Map providers = new HashMap();
providers.put(IParameterProvider.SCOPE_REQUEST, inputs);
IRuntimeContext runtimeContext = // $NON-NLS-1$ //$NON-NLS-2$
solutionEngine.execute(// $NON-NLS-1$ //$NON-NLS-2$
xactionStr, // $NON-NLS-1$ //$NON-NLS-2$
"test1a.xaction", // $NON-NLS-1$ //$NON-NLS-2$
"empty action sequence test", // $NON-NLS-1$ //$NON-NLS-2$
false, // $NON-NLS-1$ //$NON-NLS-2$
true, // $NON-NLS-1$ //$NON-NLS-2$
null, // $NON-NLS-1$ //$NON-NLS-2$
false, providers, null, null, new SimpleUrlFactory(""), new ArrayList());
assertNotNull("RuntimeContext is null", runtimeContext);
IActionParameter param = runtimeContext.getOutputParameter("output1");
assertNotNull("param is null", param);
assertEquals("setting is wrong", "value1", TestPojo1.setting1);
assertEquals("setting is wrong", "value2", TestPojo1.setting2);
assertEquals("setting is wrong", null, TestPojo1.setting3);
assertEquals("param is wrong", "abcdeabcde", param.getValue());
assertEquals("setInt2 failed", new Integer(22), TestPojo1.int2);
assertEquals("setBoolean2 failed", new Boolean(true), TestPojo1.bool2);
assertEquals("setLong2 failed", new Long(99), TestPojo1.long2);
assertEquals("setBigDecimal failed", new BigDecimal("77.7"), TestPojo1.bigDecimal);
assertEquals("setFloat2 failed", "44.4", TestPojo1.float2.toString());
assertEquals("setDouble2 failed", "66.6", TestPojo1.double2.toString());
assertTrue("done() was not called", PojoComponentTest.doneCalled);
assertTrue("setSession() was not called", PojoComponentTest.setSessionCalled);
assertTrue("setLogger() was not called", PojoComponentTest.setLoggerCalled);
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();
}
use of org.pentaho.platform.api.engine.IActionParameter in project pentaho-platform by pentaho.
the class PojoComponentTest method testStreamingPojo.
public void testStreamingPojo() {
String instanceId = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
SimpleOutputHandler outputHandler = new SimpleOutputHandler(out, false);
outputHandler.setOutputPreference(IOutputHandler.OUTPUT_TYPE_DEFAULT);
startTest();
IPentahoSession session = new StandaloneSession("system");
ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine();
if (outputHandler != null) {
outputHandler.setSession(session);
}
try {
String xactionStr = ServiceTestHelper.getXAction(SOLUTION_PATH, "test/pojo/pojo2.xaction");
PojoComponentTest.setActionSequenceResourceCalled = false;
IRuntimeContext runtimeContext = // $NON-NLS-1$ //$NON-NLS-2$
solutionEngine.execute(// $NON-NLS-1$ //$NON-NLS-2$
xactionStr, // $NON-NLS-1$ //$NON-NLS-2$
"test1.xaction", // $NON-NLS-1$ //$NON-NLS-2$
"empty action sequence test", // $NON-NLS-1$ //$NON-NLS-2$
false, // $NON-NLS-1$ //$NON-NLS-2$
true, // $NON-NLS-1$ //$NON-NLS-2$
null, // $NON-NLS-1$ //$NON-NLS-2$
false, new HashMap(), outputHandler, null, new SimpleUrlFactory(""), new ArrayList());
IActionParameter param = runtimeContext.getOutputParameter("outputstream");
assertNotNull("RuntimeContext is null", runtimeContext);
assertEquals("Action sequence execution failed", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_SUCCESS);
assertTrue("setResource was not called", PojoComponentTest.setResourceInputStreamCalled);
assertTrue("setResource was not called", PojoComponentTest.setActionSequenceResourceCalled);
} catch (Exception e) {
// we should not get here
e.printStackTrace();
assertTrue(e.getMessage(), false);
}
String output = new String(out.toByteArray());
assertEquals("outputstream", "abcdeabcde", output);
finishTest();
}
Aggregations