public void testGetSystemInput() { final String USER_NAME = "userName"; IRuntimeContext mockRuntimeContext = mock( IRuntimeContext.class ); IPentahoSession mockSession = mock( IPentahoSession.class ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession ); when( mockSession.getName() ).thenReturn( USER_NAME ); assertEquals( USER_NAME, TemplateUtil.getSystemInput( "$user", mockRuntimeContext ) ); }
public void testKeyedTableTemplate() { IRuntimeContext mockRuntimeContext = mock( IRuntimeContext.class ); IPentahoSession mockSession = mock( IPentahoSession.class ); IParameterManager mockParameterManager = mock( IParameterManager.class ); IPentahoResultSet mockPentahoResultSet = createMockResultSet(); IPentahoMetaData mockPentahoMetaData = mock( IPentahoMetaData.class ); final Set inputNames = new HashSet<Object>( Arrays.asList( new String[] { "param1" } ) ); when( mockParameterManager.getCurrentInputNames() ).thenReturn( inputNames ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession ); when( mockRuntimeContext.getParameterManager() ).thenReturn( mockParameterManager ); when( mockRuntimeContext.getInputParameterValue( "param1" ) ).thenReturn( mockPentahoResultSet ); when( mockRuntimeContext.getInputNames() ).thenReturn( inputNames ); String template = "{param1:keycol:key_Value:valcol:defaultValue}"; // "key_value" is parsed as "key value" assertEquals( "field Value", TemplateUtil.applyTemplate( template, mockRuntimeContext ) ); }
public void testTableTemplate() { IRuntimeContext mockRuntimeContext = mock( IRuntimeContext.class ); IPentahoSession mockSession = mock( IPentahoSession.class ); IParameterManager mockParameterManager = mock( IParameterManager.class ); IPentahoResultSet mockPentahoResultSet = mock( IPentahoResultSet.class ); Object[] mockRow = new Object[] { "field0", "field1" }; when( mockPentahoResultSet.getColumnCount() ).thenReturn( mockRow.length ); when( mockPentahoResultSet.getDataRow( 0 ) ).thenReturn( mockRow ); when( mockParameterManager.getCurrentInputNames() ).thenReturn( new HashSet<Object>( Arrays.asList( new String[] { "param1" } ) ) ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession ); when( mockRuntimeContext.getParameterManager() ).thenReturn( mockParameterManager ); when( mockRuntimeContext.getInputParameterValue( "param1" ) ).thenReturn( mockPentahoResultSet ); String template = "table {param1:col:1} and text"; IParameterResolver resolver = mock( IParameterResolver.class ); assertEquals( "table field1 and text", TemplateUtil.applyTemplate( template, mockRuntimeContext, resolver ) ); }
public static String getSystemInput( final String inputName, final IRuntimeContext context ) { int i = TemplateUtil.SystemInputs.indexOf( inputName ); switch ( i ) { case 0: { // User return context.getSession().getName(); } case 1: { // Relative URL return PentahoRequestContextHolder.getRequestContext().getContextPath(); } case 2: { // Solution return PentahoSystem.getApplicationContext().getSolutionPath( "" ); //$NON-NLS-1$ } case 3: { // Fully Qualified Server URL return PentahoSystem.getApplicationContext().getFullyQualifiedServerURL(); } } return null; }
IParameterManager mockParameterManager = mock( IParameterManager.class ); when( mockRuntimeContext.getParameterManager() ).thenReturn( mockParameterManager ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession );