use of org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes in project ignite-3 by apache.
the class RecordViewOperationsTest method recordView.
/**
* Creates RecordView.
*/
private RecordViewImpl<TestObjectWithAllTypes> recordView() {
ClusterService clusterService = Mockito.mock(ClusterService.class, RETURNS_DEEP_STUBS);
Mockito.when(clusterService.topologyService().localMember().address()).thenReturn(DummyInternalTableImpl.ADDR);
TxManager txManager = new TxManagerImpl(clusterService, new HeapLockManager());
MessagingService messagingService = MessagingServiceTestUtils.mockMessagingService(txManager);
Mockito.when(clusterService.messagingService()).thenReturn(messagingService);
DummyInternalTableImpl table = new DummyInternalTableImpl(new VersionedRowStore(new ConcurrentHashMapPartitionStorage(), txManager), txManager);
Mapper<TestObjectWithAllTypes> recMapper = Mapper.of(TestObjectWithAllTypes.class);
Column[] valCols = { new Column("primitiveByteCol".toUpperCase(), INT8, false), new Column("primitiveShortCol".toUpperCase(), INT16, false), new Column("primitiveIntCol".toUpperCase(), INT32, false), new Column("primitiveFloatCol".toUpperCase(), FLOAT, false), new Column("primitiveDoubleCol".toUpperCase(), DOUBLE, false), new Column("byteCol".toUpperCase(), INT8, true), new Column("shortCol".toUpperCase(), INT16, true), new Column("intCol".toUpperCase(), INT32, true), new Column("longCol".toUpperCase(), INT64, true), new Column("nullLongCol".toUpperCase(), INT64, true), new Column("floatCol".toUpperCase(), FLOAT, true), new Column("doubleCol".toUpperCase(), DOUBLE, true), new Column("dateCol".toUpperCase(), DATE, true), new Column("timeCol".toUpperCase(), time(), true), new Column("dateTimeCol".toUpperCase(), datetime(), true), new Column("timestampCol".toUpperCase(), timestamp(), true), new Column("uuidCol".toUpperCase(), NativeTypes.UUID, true), new Column("bitmaskCol".toUpperCase(), NativeTypes.bitmaskOf(42), true), new Column("stringCol".toUpperCase(), STRING, true), new Column("nullBytesCol".toUpperCase(), BYTES, true), new Column("bytesCol".toUpperCase(), BYTES, true), new Column("numberCol".toUpperCase(), NativeTypes.numberOf(12), true), new Column("decimalCol".toUpperCase(), NativeTypes.decimalOf(19, 3), true) };
SchemaDescriptor schema = new SchemaDescriptor(1, new Column[] { new Column("primitiveLongCol".toUpperCase(), NativeTypes.INT64, false) }, valCols);
// Validate all types are tested.
Set<NativeTypeSpec> testedTypes = Arrays.stream(valCols).map(c -> c.type().spec()).collect(Collectors.toSet());
Set<NativeTypeSpec> missedTypes = Arrays.stream(NativeTypeSpec.values()).filter(t -> !testedTypes.contains(t)).collect(Collectors.toSet());
assertEquals(Collections.emptySet(), missedTypes);
return new RecordViewImpl<>(table, new DummySchemaManagerImpl(schema), recMapper);
}
use of org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes in project ignite-3 by apache.
the class KeyValueViewOperationsTest method getAndPut.
@Test
public void getAndPut() {
final TestKeyObject key = TestKeyObject.randomObject(rnd);
final TestObjectWithAllTypes obj = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj2 = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj3 = TestObjectWithAllTypes.randomObject(rnd);
KeyValueView<TestKeyObject, TestObjectWithAllTypes> tbl = kvView();
assertNull(tbl.get(null, key));
// Insert new KV pair.
assertNull(tbl.getAndPut(null, key, obj));
assertEquals(obj, tbl.get(null, key));
// Update KV pair.
assertEquals(obj, tbl.getAndPut(null, key, obj2));
assertEquals(obj2, tbl.getAndPut(null, key, obj3));
assertEquals(obj3, tbl.get(null, key));
}
use of org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes in project ignite-3 by apache.
the class KeyValueViewOperationsTest method contains.
@Test
public void contains() {
final TestKeyObject key = TestKeyObject.randomObject(rnd);
final TestKeyObject key2 = TestKeyObject.randomObject(rnd);
final TestObjectWithAllTypes obj = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj2 = TestObjectWithAllTypes.randomObject(rnd);
KeyValueView<TestKeyObject, TestObjectWithAllTypes> tbl = kvView();
// Not-existed value.
assertFalse(tbl.contains(null, key));
// Put KV pair.
tbl.put(null, key, obj);
assertTrue(tbl.contains(null, key));
// Delete key.
assertTrue(tbl.remove(null, key));
assertFalse(tbl.contains(null, key));
// Put KV pair.
tbl.put(null, key, obj2);
assertTrue(tbl.contains(null, key));
// Delete key.
tbl.remove(null, key2);
assertFalse(tbl.contains(null, key2));
}
use of org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes in project ignite-3 by apache.
the class KeyValueViewOperationsTest method remove.
@Test
public void remove() {
final TestKeyObject key = TestKeyObject.randomObject(rnd);
final TestKeyObject key2 = TestKeyObject.randomObject(rnd);
final TestObjectWithAllTypes obj = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj2 = TestObjectWithAllTypes.randomObject(rnd);
KeyValueView<TestKeyObject, TestObjectWithAllTypes> tbl = kvView();
// Put KV pair.
tbl.put(null, key, obj);
// Delete existed key.
assertEquals(obj, tbl.get(null, key));
assertTrue(tbl.remove(null, key));
assertNull(tbl.get(null, key));
// Delete already deleted key.
assertFalse(tbl.remove(null, key));
// Put KV pair.
tbl.put(null, key, obj2);
assertEquals(obj2, tbl.get(null, key));
// Delete existed key.
assertTrue(tbl.remove(null, key));
assertNull(tbl.get(null, key));
// Delete not existed key.
assertNull(tbl.get(null, key2));
assertFalse(tbl.remove(null, key2));
}
use of org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes in project ignite-3 by apache.
the class KeyValueViewOperationsTest method put.
@Test
public void put() {
final TestKeyObject key = TestKeyObject.randomObject(rnd);
final TestObjectWithAllTypes obj = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj2 = TestObjectWithAllTypes.randomObject(rnd);
final TestObjectWithAllTypes obj3 = TestObjectWithAllTypes.randomObject(rnd);
KeyValueView<TestKeyObject, TestObjectWithAllTypes> tbl = kvView();
assertNull(tbl.get(null, key));
// Put KV pair.
tbl.put(null, key, obj);
assertEquals(obj, tbl.get(null, key));
assertEquals(obj, tbl.get(null, key));
// Update KV pair.
tbl.put(null, key, obj2);
assertEquals(obj2, tbl.get(null, key));
assertEquals(obj2, tbl.get(null, key));
// Remove KV pair.
tbl.remove(null, key);
assertNull(tbl.get(null, key));
// Put KV pair.
tbl.put(null, key, obj3);
assertEquals(obj3, tbl.get(null, key));
}
Aggregations