use of org.apache.ignite.internal.schema.BinaryRow in project ignite-3 by apache.
the class RecordMarshallerTest method mapping.
@ParameterizedTest
@MethodSource("marshallerFactoryProvider")
public void mapping(MarshallerFactory factory) throws MarshallerException {
SchemaDescriptor schema = new SchemaDescriptor(1, new Column[] { new Column("key".toUpperCase(), INT64, false) }, new Column[] { new Column("col1".toUpperCase(), INT32, false), new Column("col2".toUpperCase(), INT64, true), new Column("col3".toUpperCase(), STRING, false) });
Mapper<TestObject> mapper = Mapper.builder(TestObject.class).map("id", "key").map("intCol", "col1").map("stringCol", "col3").build();
RecordMarshaller<TestObject> marshaller = factory.create(schema, mapper);
final TestObject rec = TestObject.randomObject(rnd);
BinaryRow row = marshaller.marshal(rec);
Object restoredRec = marshaller.unmarshal(new Row(schema, row));
assertTrue(rec.getClass().isInstance(restoredRec));
// Nullify non-mapped field.
rec.longCol2 = null;
assertEquals(rec, restoredRec);
}
use of org.apache.ignite.internal.schema.BinaryRow in project ignite-3 by apache.
the class RecordMarshallerTest method widerType.
@ParameterizedTest
@MethodSource("marshallerFactoryProvider")
public void widerType(MarshallerFactory factory) throws MarshallerException {
SchemaDescriptor schema = new SchemaDescriptor(1, keyColumns(), new Column[] { new Column("primitiveDoubleCol".toUpperCase(), DOUBLE, false), new Column("stringCol".toUpperCase(), STRING, true) });
RecordMarshaller<TestObjectWithAllTypes> marshaller = factory.create(schema, TestObjectWithAllTypes.class);
final TestObjectWithAllTypes rec = TestObjectWithAllTypes.randomObject(rnd);
BinaryRow row = marshaller.marshal(rec);
TestObjectWithAllTypes restoredRec = marshaller.unmarshal(new Row(schema, row));
assertTrue(rec.getClass().isInstance(restoredRec));
TestObjectWithAllTypes expectedRec = new TestObjectWithAllTypes();
expectedRec.setPrimitiveLongCol(rec.getPrimitiveLongCol());
expectedRec.setIntCol(rec.getIntCol());
expectedRec.setPrimitiveDoubleCol(rec.getPrimitiveDoubleCol());
expectedRec.setStringCol(rec.getStringCol());
assertEquals(expectedRec, restoredRec);
// Check non-mapped fields has default values.
assertNull(restoredRec.getUuidCol());
assertEquals(0, restoredRec.getPrimitiveIntCol());
}
use of org.apache.ignite.internal.schema.BinaryRow in project ignite-3 by apache.
the class RecordMarshallerTest method truncatedType.
@ParameterizedTest
@MethodSource("marshallerFactoryProvider")
public void truncatedType(MarshallerFactory factory) throws MarshallerException {
SchemaDescriptor schema = new SchemaDescriptor(1, keyColumns(), valueColumnsAllTypes());
RecordMarshaller<TestTruncatedObject> marshaller = factory.create(schema, TestTruncatedObject.class);
final TestTruncatedObject rec = TestTruncatedObject.randomObject(rnd);
BinaryRow row = marshaller.marshal(rec);
Object restoredRec = marshaller.unmarshal(new Row(schema, row));
assertTrue(rec.getClass().isInstance(restoredRec));
assertEquals(rec, restoredRec);
}
use of org.apache.ignite.internal.schema.BinaryRow in project ignite-3 by apache.
the class RecordMarshallerTest method privateClass.
@ParameterizedTest
@MethodSource("marshallerFactoryProvider")
public void privateClass(MarshallerFactory factory) throws MarshallerException {
SchemaDescriptor schema = new SchemaDescriptor(1, new Column[] { new Column("primLongCol".toUpperCase(), INT64, false) }, new Column[] { new Column("primIntCol".toUpperCase(), INT32, false) });
final ObjectFactory<PrivateTestObject> objFactory = new ObjectFactory<>(PrivateTestObject.class);
final RecordMarshaller<PrivateTestObject> marshaller = factory.create(schema, PrivateTestObject.class);
final PrivateTestObject rec = PrivateTestObject.randomObject(rnd);
BinaryRow row = marshaller.marshal(objFactory.create());
Object restoredRec = marshaller.unmarshal(new Row(schema, row));
assertTrue(rec.getClass().isInstance(restoredRec));
}
use of org.apache.ignite.internal.schema.BinaryRow in project ignite-3 by apache.
the class RecordMarshallerTest method classWithPrivateConstructor.
@ParameterizedTest
@MethodSource("marshallerFactoryProvider")
public void classWithPrivateConstructor(MarshallerFactory factory) throws MarshallerException, IllegalAccessException {
SchemaDescriptor schema = new SchemaDescriptor(1, new Column[] { new Column("primLongCol".toUpperCase(), INT64, false) }, new Column[] { new Column("primIntCol".toUpperCase(), INT32, false) });
RecordMarshaller<TestObjectWithPrivateConstructor> marshaller = factory.create(schema, TestObjectWithPrivateConstructor.class);
final TestObjectWithPrivateConstructor rec = TestObjectWithPrivateConstructor.randomObject(rnd);
BinaryRow row = marshaller.marshal(rec);
TestObjectWithPrivateConstructor restoredRec = marshaller.unmarshal(new Row(schema, row));
assertDeepEquals(TestObjectWithPrivateConstructor.class, rec, restoredRec);
}
Aggregations