/** * Get a {@link TypeName#BOOLEAN} value by field name, {@link IllegalStateException} is thrown if * schema doesn't match. */ @Nullable public Boolean getBoolean(String fieldName) { return getBoolean(getSchema().indexOf(fieldName)); }
assertNull(row.getDateTime("f_datetime")); assertNull(row.getDateTime(8)); assertNull(row.getBoolean("f_boolean")); assertNull(row.getBoolean(9)); assertNull(row.getBoolean("f_array")); assertNull(row.getBoolean(10)); assertNull(row.getBoolean("f_map")); assertNull(row.getBoolean(11));
@Override public PDone expand(PBegin begin) { PCollection<Boolean> result = begin .apply( Create.of(DUMMY_ROW) .withSchema( DUMMY_SCHEMA, SerializableFunctions.identity(), SerializableFunctions.identity())) .apply(SqlTransform.query("SELECT " + expr)) .apply(MapElements.into(TypeDescriptors.booleans()).via(row -> row.getBoolean(0))); PAssert.that(result) .satisfies( input -> { assertTrue("Test expression is false: " + expr, Iterables.getOnlyElement(input)); return null; }); return PDone.in(begin.getPipeline()); } }
assertEquals(dateTime, row.getDateTime("f_datetime")); assertEquals(dateTime, row.getDateTime(8)); assertEquals(false, row.getBoolean("f_boolean")); assertEquals(false, row.getBoolean(9));
@Test public void testToRow() throws NoSuchSchemaException { SchemaRegistry registry = SchemaRegistry.createDefault(); SimplePOJO pojo = createSimple("string"); Row row = registry.getToRowFunction(SimplePOJO.class).apply(pojo); assertEquals(12, row.getFieldCount()); assertEquals("string", row.getString("str")); assertEquals((byte) 1, (Object) row.getByte("aByte")); assertEquals((short) 2, (Object) row.getInt16("aShort")); assertEquals((int) 3, (Object) row.getInt32("anInt")); assertEquals((long) 4, (Object) row.getInt64("aLong")); assertEquals(true, row.getBoolean("aBoolean")); assertEquals(DATE.toInstant(), row.getDateTime("dateTime")); assertEquals(INSTANT, row.getDateTime("instant").toInstant()); assertArrayEquals(BYTE_ARRAY, row.getBytes("bytes")); assertArrayEquals(BYTE_BUFFER.array(), row.getBytes("byteBuffer")); assertEquals(BigDecimal.ONE, row.getDecimal("bigDecimal")); assertEquals("stringbuilder", row.getString("stringBuilder")); }
@Test public void testRecursiveGetters() throws NoSuchSchemaException { SchemaRegistry registry = SchemaRegistry.createDefault(); SchemaTestUtils.assertSchemaEquivalent( NESTED_POJO_SCHEMA, registry.getSchema(NestedPOJO.class)); NestedPOJO pojo = new NestedPOJO(createSimple("string")); Row row = registry.getToRowFunction(NestedPOJO.class).apply(pojo); Row nestedRow = row.getRow("nested"); assertEquals("string", nestedRow.getString("str")); assertEquals((byte) 1, (Object) nestedRow.getByte("aByte")); assertEquals((short) 2, (Object) nestedRow.getInt16("aShort")); assertEquals((int) 3, (Object) nestedRow.getInt32("anInt")); assertEquals((long) 4, (Object) nestedRow.getInt64("aLong")); assertEquals(true, nestedRow.getBoolean("aBoolean")); assertEquals(DATE.toInstant(), nestedRow.getDateTime("dateTime")); assertEquals(INSTANT, nestedRow.getDateTime("instant").toInstant()); assertArrayEquals("not equal", BYTE_ARRAY, nestedRow.getBytes("bytes")); assertArrayEquals("not equal", BYTE_BUFFER.array(), nestedRow.getBytes("byteBuffer")); assertEquals(BigDecimal.ONE, nestedRow.getDecimal("bigDecimal")); assertEquals("stringbuilder", nestedRow.getString("stringBuilder")); }
@Test public void testToRow() throws NoSuchSchemaException { SchemaRegistry registry = SchemaRegistry.createDefault(); SimpleBean bean = createSimple("string"); Row row = registry.getToRowFunction(SimpleBean.class).apply(bean); assertEquals(12, row.getFieldCount()); assertEquals("string", row.getString("str")); assertEquals((byte) 1, (Object) row.getByte("aByte")); assertEquals((short) 2, (Object) row.getInt16("aShort")); assertEquals((int) 3, (Object) row.getInt32("anInt")); assertEquals((long) 4, (Object) row.getInt64("aLong")); assertEquals(true, (Object) row.getBoolean("aBoolean")); assertEquals(DATE.toInstant(), row.getDateTime("dateTime")); assertEquals(DATE.toInstant(), row.getDateTime("instant")); assertArrayEquals(BYTE_ARRAY, row.getBytes("bytes")); assertArrayEquals(BYTE_ARRAY, row.getBytes("byteBuffer")); assertEquals(BigDecimal.ONE, row.getDecimal("bigDecimal")); assertEquals("stringbuilder", row.getString("stringBuilder")); }
@Test public void testRecursiveGetters() throws NoSuchSchemaException { SchemaRegistry registry = SchemaRegistry.createDefault(); SchemaTestUtils.assertSchemaEquivalent( NESTED_BEAN_SCHEMA, registry.getSchema(NestedBean.class)); NestedBean bean = new NestedBean(createSimple("string")); Row row = registry.getToRowFunction(NestedBean.class).apply(bean); Row nestedRow = row.getRow("nested"); assertEquals("string", nestedRow.getString("str")); assertEquals((byte) 1, (Object) nestedRow.getByte("aByte")); assertEquals((short) 2, (Object) nestedRow.getInt16("aShort")); assertEquals((int) 3, (Object) nestedRow.getInt32("anInt")); assertEquals((long) 4, (Object) nestedRow.getInt64("aLong")); assertEquals(true, nestedRow.getBoolean("aBoolean")); assertEquals(DATE.toInstant(), nestedRow.getDateTime("dateTime")); assertEquals(DATE.toInstant(), nestedRow.getDateTime("instant")); assertArrayEquals("not equal", BYTE_ARRAY, nestedRow.getBytes("bytes")); assertArrayEquals("not equal", BYTE_ARRAY, nestedRow.getBytes("byteBuffer")); assertEquals(BigDecimal.ONE, nestedRow.getDecimal("bigDecimal")); assertEquals("stringbuilder", nestedRow.getString("stringBuilder")); }