/** * Get a {@link TypeName#DECIMAL} value by field name, {@link IllegalStateException} is thrown if * schema doesn't match. */ @Nullable public BigDecimal getDecimal(String fieldName) { return getDecimal(getSchema().indexOf(fieldName)); }
assertEquals((long) 3, (Object) row.getInt64("f_int64")); assertEquals((long) 3, (Object) row.getInt64(3)); assertEquals(new BigDecimal(2.3), row.getDecimal("f_decimal")); assertEquals(new BigDecimal(2.3), row.getDecimal(4)); assertEquals(1.2f, row.getFloat("f_float"), 0); assertEquals(1.2f, row.getFloat(5), 0);
@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")); }
assertNull(row.getInt64("f_int64")); assertNull(row.getInt64(3)); assertNull(row.getDecimal("f_decimal")); assertNull(row.getDecimal(4)); assertNull(row.getFloat("f_float")); assertNull(row.getFloat(5));
@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")); }