package org.embulk.spi; import java.util.ArrayList; import java.util.List; import org.embulk.spi.TestPageBuilderReader.MockPageOutput; import org.embulk.spi.time.Timestamp; import org.embulk.spi.Column; import org.embulk.spi.ColumnConfig; import org.embulk.spi.Schema; import org.embulk.spi.SchemaConfig; import org.embulk.spi.ColumnVisitor; import org.embulk.spi.type.Type; import org.msgpack.value.Value; import com.google.common.collect.ImmutableList; public class PageTestUtils { private PageTestUtils() { } public static List<Page> buildPage(BufferAllocator bufferAllocator, Schema schema, Object... values) { MockPageOutput output = new MockPageOutput(); try (PageBuilder builder = new PageBuilder(bufferAllocator, schema, output)) { int idx = 0; while (idx < values.length) { for (int column = 0; column < builder.getSchema() .getColumnCount(); ++column) { Object value = values[idx++]; if (value == null) { builder.setNull(column); } else if (value instanceof Boolean) { builder.setBoolean(column, (Boolean) value); } else if (value instanceof Double) { builder.setDouble(column, (Double) value); } else if (value instanceof Long) { builder.setLong(column, (Long) value); } else if (value instanceof String) { builder.setString(column, (String) value); } else if (value instanceof Timestamp) { builder.setTimestamp(column, (Timestamp) value); } else if (value instanceof Value) { builder.setJson(column, (Value) value); } else { throw new IllegalStateException( "Unsupported type in test utils: " + value.toString()); } } builder.addRecord(); } builder.finish(); } return output.pages; } }