use of org.talend.components.api.component.runtime.Reader in project components by Talend.
the class JdbcInputTestIT method testType.
@SuppressWarnings({ "rawtypes" })
@Test
public void testType() throws Exception {
JDBCInputDefinition definition = new JDBCInputDefinition();
JDBCInputProperties properties = createCommonJDBCInputProperties(definition);
Reader reader = DBTestUtils.createCommonJDBCInputReader(properties);
try {
IndexedRecordConverter<Object, ? extends IndexedRecord> converter = null;
for (boolean available = reader.start(); available; available = reader.advance()) {
converter = DBTestUtils.getIndexRecordConverter(reader, converter);
IndexedRecord record = converter.convertToAvro(reader.getCurrent());
assertEquals(String.class, record.get(0).getClass());
assertEquals(String.class, record.get(1).getClass());
}
reader.close();
} finally {
reader.close();
}
}
use of org.talend.components.api.component.runtime.Reader in project components by Talend.
the class JdbcInputTestIT method testReader.
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void testReader() {
Reader reader = null;
try {
JDBCInputDefinition definition = new JDBCInputDefinition();
JDBCInputProperties properties = createCommonJDBCInputProperties(definition);
reader = DBTestUtils.createCommonJDBCInputReader(properties);
reader.start();
IndexedRecord row = (IndexedRecord) reader.getCurrent();
String id = (String) row.get(0);
String name = (String) row.get(1);
assertEquals("1", id);
assertEquals("wangwei", name);
reader.advance();
row = (IndexedRecord) reader.getCurrent();
id = (String) row.get(0);
name = (String) row.get(1);
assertEquals("2", id);
assertEquals("gaoyan", name);
reader.advance();
row = (IndexedRecord) reader.getCurrent();
id = (String) row.get(0);
name = (String) row.get(1);
assertEquals("3", id);
assertEquals("dabao", name);
reader.close();
Map<String, Object> returnMap = reader.getReturnValues();
Assert.assertEquals(3, returnMap.get(ComponentDefinition.RETURN_TOTAL_RECORD_COUNT));
} catch (Exception e) {
Assert.fail(e.getMessage());
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
Assert.fail(e.getMessage());
}
}
}
}
use of org.talend.components.api.component.runtime.Reader in project components by Talend.
the class JDBCInputTestIT method testType.
@SuppressWarnings({ "rawtypes" })
@Test
public void testType() throws Exception {
TJDBCInputDefinition definition = new TJDBCInputDefinition();
TJDBCInputProperties properties = DBTestUtils.createCommonJDBCInputProperties(allSetting, definition);
properties.main.schema.setValue(DBTestUtils.createTestSchema(tablename));
properties.tableSelection.tablename.setValue(tablename);
properties.sql.setValue(DBTestUtils.getSQL(tablename));
Reader reader = DBTestUtils.createCommonJDBCInputReader(properties);
try {
IndexedRecordConverter<Object, ? extends IndexedRecord> converter = null;
for (boolean available = reader.start(); available; available = reader.advance()) {
converter = DBTestUtils.getIndexRecordConverter(reader, converter);
IndexedRecord record = converter.convertToAvro(reader.getCurrent());
assertEquals(Integer.class, record.get(0).getClass());
assertEquals(String.class, record.get(1).getClass());
}
reader.close();
} finally {
reader.close();
}
}
use of org.talend.components.api.component.runtime.Reader in project components by Talend.
the class JDBCSPTestIT method test_basic_as_input.
@SuppressWarnings("rawtypes")
@Test
public void test_basic_as_input() throws Exception {
TJDBCSPDefinition definition = new TJDBCSPDefinition();
TJDBCSPProperties properties = DBTestUtils.createCommonJDBCSPProperties(allSetting, definition);
properties.isFunction.setValue(true);
properties.returnResultIn.setValue("PARAMETER");
properties.spName.setValue("SYSCS_UTIL.SYSCS_GET_DATABASE_NAME");
Schema schema = DBTestUtils.createSPSchema2(tablename);
properties.main.schema.setValue(schema);
properties.schemaFlow.schema.setValue(schema);
JDBCSPSource source = new JDBCSPSource();
source.initialize(null, properties);
ValidationResult result = source.validate(null);
Assert.assertTrue(result.getStatus() == ValidationResult.Result.OK);
Reader reader = source.createReader(null);
try {
reader.start();
IndexedRecord row = (IndexedRecord) reader.getCurrent();
String v1 = (String) row.get(0);
Assert.assertEquals("memory:myDB", v1);
// only output one row when it works as a input component
Assert.assertFalse(reader.advance());
reader.close();
} finally {
reader.close();
}
}
use of org.talend.components.api.component.runtime.Reader in project components by Talend.
the class DBTestUtils method fetchDataByReaderFromTable.
@SuppressWarnings("rawtypes")
public static List<IndexedRecord> fetchDataByReaderFromTable(String tablename, Schema schema, TJDBCInputDefinition definition, TJDBCInputProperties properties) {
List<IndexedRecord> result = new ArrayList<IndexedRecord>();
properties.main.schema.setValue(schema);
properties.tableSelection.tablename.setValue(tablename);
properties.sql.setValue("select * from " + tablename);
JDBCSource source = new JDBCSource();
source.initialize(null, properties);
Reader reader = null;
try {
reader = source.createReader(null);
boolean haveNext = reader.start();
while (haveNext) {
IndexedRecord row = (IndexedRecord) reader.getCurrent();
result.add(copyValueFrom(row));
haveNext = reader.advance();
}
reader.close();
} catch (Exception e) {
Assert.fail(e.getMessage());
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
Assert.fail(e.getMessage());
}
}
}
return result;
}
Aggregations