public static RowCoder of(Schema schema) {
    return new RowCoder(schema);
  }
@Test
  public void testPrimitiveTypes() throws Exception {
    Schema schema =
        Schema.builder()
            .addByteField("f_byte")
            .addInt16Field("f_int16")
            .addInt32Field("f_int32")
            .addInt64Field("f_int64")
            .addDecimalField("f_decimal")
            .addFloatField("f_float")
            .addDoubleField("f_double")
            .addStringField("f_string")
            .addDateTimeField("f_datetime")
            .addBooleanField("f_boolean")
            .build();

    DateTime dateTime =
        new DateTime().withDate(1979, 03, 14).withTime(1, 2, 3, 4).withZone(DateTimeZone.UTC);
    Row row =
        Row.withSchema(schema)
            .addValues(
                (byte) 0,
                (short) 1,
                2,
                3L,
                new BigDecimal("2.3"),
                1.2f,
                3.0d,
                "str",
                dateTime,
                false)
            .build();

    CoderProperties.coderDecodeEncodeEqual(RowCoder.of(schema), row);
  }