public void testMetaData() throws ReportDataFactoryException { final KettleDataFactory kettleDataFactory = new KettleDataFactory(); kettleDataFactory.initialize(new DesignTimeDataFactoryContext()); kettleDataFactory.setQuery( "default", new KettleTransFromFileProducer(QUERY, STEP, new String[0], new ParameterMapping[0])); final DataFactoryMetaData metaData = kettleDataFactory.getMetaData(); final Object queryHash = metaData.getQueryHash(kettleDataFactory, "default", new StaticDataRow()); assertNotNull(queryHash); final KettleDataFactory kettleDataFactory2 = new KettleDataFactory(); kettleDataFactory2.initialize(new DesignTimeDataFactoryContext()); kettleDataFactory2.setQuery( "default", new KettleTransFromFileProducer(QUERY + "2", STEP, new String[0], new ParameterMapping[0])); kettleDataFactory2.setQuery( "default2", new KettleTransFromFileProducer(QUERY, STEP, new String[0], new ParameterMapping[0])); assertNotEquals( "Physical Query is not the same", queryHash, metaData.getQueryHash(kettleDataFactory2, "default", new StaticDataRow())); assertEquals( "Physical Query is the same", queryHash, metaData.getQueryHash(kettleDataFactory2, "default2", new StaticDataRow())); }
public void testParameter() throws ReportDataFactoryException { final KettleDataFactory kettleDataFactory = new KettleDataFactory(); kettleDataFactory.initialize(new DesignTimeDataFactoryContext()); final ParameterMapping[] parameterMappings = { new ParameterMapping("name", "kettle-name"), new ParameterMapping("name2", "k3"), new ParameterMapping("name", "k2") }; final String[] argumentNames = {"arg0"}; kettleDataFactory.setQuery( "default", new KettleTransFromFileProducer(QUERY, STEP, argumentNames, parameterMappings)); final DataFactoryMetaData metaData = kettleDataFactory.getMetaData(); final String[] fields = metaData.getReferencedFields(kettleDataFactory, "default", new StaticDataRow()); assertNotNull(fields); assertEquals(4, fields.length); assertEquals("arg0", fields[0]); assertEquals("name", fields[1]); assertEquals("name2", fields[2]); assertEquals(DataFactory.QUERY_LIMIT, fields[3]); }