use of org.xbib.elasticsearch.common.util.IndexableObject in project elasticsearch-jdbc by jprante.
the class MockTests method testMockIndexId.
@Test
@Parameters({ "sql5" })
public void testMockIndexId(String sql) throws Exception {
MockSink mock = new MockSink() {
@Override
public void index(IndexableObject object, boolean create) throws IOException {
super.index(object, create);
logger.debug("products={}", object);
}
};
PreparedStatement statement = source.prepareQuery(sql);
ResultSet results = source.executeQuery(statement);
StringKeyValueStreamListener listener = new StringKeyValueStreamListener().output(mock);
source.beforeRows(results, listener);
while (source.nextRow(results, listener)) {
// ignore
}
source.afterRows(results, listener);
assertEquals(mock.getCounter(), 3);
source.close(results);
source.close(statement);
}
use of org.xbib.elasticsearch.common.util.IndexableObject in project elasticsearch-jdbc by jprante.
the class MockTests method testMockTimePeriod.
@Test
@Parameters({ "sql4" })
public void testMockTimePeriod(String sql) throws Exception {
List<Object> params = new LinkedList<Object>();
params.add("2012-06-10 00:00:00");
Sink output = new MockSink() {
@Override
public void index(IndexableObject object, boolean create) throws IOException {
logger.debug("object={}", object);
}
};
PreparedStatement statement = source.prepareQuery(sql);
source.bind(statement, params);
ResultSet results = source.executeQuery(statement);
StringKeyValueStreamListener listener = new StringKeyValueStreamListener().output(output);
source.beforeRows(results, listener);
long rows = 0L;
while (source.nextRow(results, listener)) {
rows++;
}
source.afterRows(results, listener);
assertEquals(rows, 3);
source.close(results);
source.close(statement);
}
use of org.xbib.elasticsearch.common.util.IndexableObject in project elasticsearch-jdbc by jprante.
the class MockTests method testMockBill.
@Test
@Parameters({ "sql1" })
public void testMockBill(String sql) throws Exception {
List<Object> params = new LinkedList<Object>();
Sink output = new MockSink() {
@Override
public void index(IndexableObject object, boolean create) throws IOException {
logger.debug("sql1 object={}", object);
}
};
PreparedStatement statement = source.prepareQuery(sql);
source.bind(statement, params);
ResultSet results = source.executeQuery(statement);
StringKeyValueStreamListener listener = new StringKeyValueStreamListener().output(output);
long rows = 0L;
source.beforeRows(results, listener);
while (source.nextRow(results, listener)) {
rows++;
}
source.afterRows(results, listener);
assertEquals(rows, 5);
source.close(results);
source.close(statement);
}
use of org.xbib.elasticsearch.common.util.IndexableObject in project elasticsearch-jdbc by jprante.
the class ColumnStrategySourceTests method createFixturesAndPopulateSink.
private ProductFixtures createFixturesAndPopulateSink(boolean[] shouldProductsBeDeleted, MockSink sink) throws IOException {
ProductFixture[] fixtures = new ProductFixture[shouldProductsBeDeleted.length];
int expectedExistsCountAfterRun = 0;
for (int i = 0; i < shouldProductsBeDeleted.length; i++) {
IndexableObject p = new PlainIndexableObject().id(Integer.toString(i)).source(createSource(i)).optype("delete");
sink.index(p, false);
Timestamp deletedAt;
if (shouldProductsBeDeleted[i]) {
deletedAt = okTimestamp();
} else {
deletedAt = oldTimestamp();
expectedExistsCountAfterRun++;
}
fixtures[i] = ProductFixture.one().setId(i).createdAt(oldTimestamp()).updatedAt(oldTimestamp()).deletedAt(deletedAt);
}
return new ProductFixtures(fixtures, expectedExistsCountAfterRun);
}
use of org.xbib.elasticsearch.common.util.IndexableObject in project elasticsearch-jdbc by jprante.
the class StandardSourceTests method testSimpleNullInteger.
@Test
@Parameters({ "sql3" })
public void testSimpleNullInteger(String sql) throws Exception {
List<Object> params = new LinkedList<Object>();
Sink sink = new MockSink() {
@Override
public void index(IndexableObject object, boolean create) throws IOException {
if (object == null || object.source() == null) {
throw new IllegalArgumentException("object missing");
}
Values o = (Values) object.source().get("amount");
if (o == null) {
// hsqldb is uppercase
o = (Values) object.source().get("AMOUNT");
}
if (!o.isNull()) {
throw new IllegalArgumentException("amount not null??? " + o.getClass().getName());
}
}
};
PreparedStatement statement = source.prepareQuery(sql);
source.bind(statement, params);
ResultSet results = source.executeQuery(statement);
StringKeyValueStreamListener listener = new StringKeyValueStreamListener().output(sink);
long rows = 0L;
source.beforeRows(results, listener);
if (source.nextRow(results, listener)) {
// only one row
rows++;
}
source.afterRows(results, listener);
assertEquals(rows, 1);
source.close(results);
source.close(statement);
}
Aggregations