public void testExtraInput() { StagingTable table = new StagingTable(); table.setId("test_table"); StagingColumnDefinition def1 = new StagingColumnDefinition(); def1.setKey("input1"); def1.setName("Input 1"); def1.setType(ColumnType.INPUT); StagingColumnDefinition def2 = new StagingColumnDefinition(); def2.setKey("result1"); def2.setName("Result1"); def2.setType(ColumnType.ENDPOINT); table.setColumnDefinitions(new List <IColumnDefinition>() { def1, def2 }); table.setRawRows(new List <List <String> >()); table.getRawRows().Add(new List <String>() { "1", "MATCH" }); table.getRawRows().Add(new List <String>() { "2", "VALUE:{{extra1}}" }); table.getRawRows().Add(new List <String>() { "{{extra2}}", "MATCH" }); table.getRawRows().Add(new List <String>() { "{{ctx_year_current}}", "MATCH" }); table.getRawRows().Add(new List <String>() { "5", "VALUE:{{ctx_year_current}}" }); table.getRawRows().Add(new List <String>() { "6", "MATCH:{{match_extra}}" }); table.getRawRows().Add(new List <String>() { "7", "ERROR:{{error_extra}}" }); StagingDataProvider.initTable(table); HashSet <String> hash1 = new HashSet <String>() { "extra1", "extra2" }; HashSet <String> hash2 = table.getExtraInput(); // since context variables are not user-supplied, they should not be included in the extra input Assert.IsTrue(hash1.SetEquals(hash2)); table.setRawRows(new List <List <String> >()); table.getRawRows().Add(new List <String>() { "{{ctx_year_current}}", "MATCH" }); StagingDataProvider.initTable(table); Assert.IsNull(table.getExtraInput()); }