Search in sources :

Example 11 with TestObjectWithAllTypes

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);
}
Also used : VersionedRowStore(org.apache.ignite.internal.table.distributed.storage.VersionedRowStore) DATE(org.apache.ignite.internal.schema.NativeTypes.DATE) ConcurrentHashMapPartitionStorage(org.apache.ignite.internal.storage.basic.ConcurrentHashMapPartitionStorage) RecordView(org.apache.ignite.table.RecordView) Arrays(java.util.Arrays) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) Random(java.util.Random) VersionedRowStore(org.apache.ignite.internal.table.distributed.storage.VersionedRowStore) DOUBLE(org.apache.ignite.internal.schema.NativeTypes.DOUBLE) HeapLockManager(org.apache.ignite.internal.tx.impl.HeapLockManager) INT64(org.apache.ignite.internal.schema.NativeTypes.INT64) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) INT8(org.apache.ignite.internal.schema.NativeTypes.INT8) Mapper(org.apache.ignite.table.mapper.Mapper) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) MessagingService(org.apache.ignite.network.MessagingService) FLOAT(org.apache.ignite.internal.schema.NativeTypes.FLOAT) RETURNS_DEEP_STUBS(org.mockito.Answers.RETURNS_DEEP_STUBS) TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) NativeTypes.datetime(org.apache.ignite.internal.schema.NativeTypes.datetime) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) DummySchemaManagerImpl(org.apache.ignite.internal.table.impl.DummySchemaManagerImpl) NativeTypes.timestamp(org.apache.ignite.internal.schema.NativeTypes.timestamp) Collection(java.util.Collection) Set(java.util.Set) TxManagerImpl(org.apache.ignite.internal.tx.impl.TxManagerImpl) Collectors(java.util.stream.Collectors) NativeTypeSpec(org.apache.ignite.internal.schema.NativeTypeSpec) DummyInternalTableImpl(org.apache.ignite.internal.table.impl.DummyInternalTableImpl) TxManager(org.apache.ignite.internal.tx.TxManager) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) BYTES(org.apache.ignite.internal.schema.NativeTypes.BYTES) List(java.util.List) NativeTypes(org.apache.ignite.internal.schema.NativeTypes) STRING(org.apache.ignite.internal.schema.NativeTypes.STRING) Column(org.apache.ignite.internal.schema.Column) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) NativeTypes.time(org.apache.ignite.internal.schema.NativeTypes.time) ClusterService(org.apache.ignite.network.ClusterService) INT16(org.apache.ignite.internal.schema.NativeTypes.INT16) INT32(org.apache.ignite.internal.schema.NativeTypes.INT32) NotNull(org.jetbrains.annotations.NotNull) Collections(java.util.Collections) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) NativeTypeSpec(org.apache.ignite.internal.schema.NativeTypeSpec) ConcurrentHashMapPartitionStorage(org.apache.ignite.internal.storage.basic.ConcurrentHashMapPartitionStorage) TxManager(org.apache.ignite.internal.tx.TxManager) DummySchemaManagerImpl(org.apache.ignite.internal.table.impl.DummySchemaManagerImpl) MessagingService(org.apache.ignite.network.MessagingService) HeapLockManager(org.apache.ignite.internal.tx.impl.HeapLockManager) ClusterService(org.apache.ignite.network.ClusterService) TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) Column(org.apache.ignite.internal.schema.Column) TxManagerImpl(org.apache.ignite.internal.tx.impl.TxManagerImpl) DummyInternalTableImpl(org.apache.ignite.internal.table.impl.DummyInternalTableImpl)

Example 12 with TestObjectWithAllTypes

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));
}
Also used : TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) Test(org.junit.jupiter.api.Test)

Example 13 with TestObjectWithAllTypes

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));
}
Also used : TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) Test(org.junit.jupiter.api.Test)

Example 14 with TestObjectWithAllTypes

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));
}
Also used : TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) Test(org.junit.jupiter.api.Test)

Example 15 with TestObjectWithAllTypes

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));
}
Also used : TestObjectWithAllTypes(org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes) Test(org.junit.jupiter.api.Test)

Aggregations

TestObjectWithAllTypes (org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes)30 Test (org.junit.jupiter.api.Test)20 SchemaDescriptor (org.apache.ignite.internal.schema.SchemaDescriptor)10 Column (org.apache.ignite.internal.schema.Column)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)8 MethodSource (org.junit.jupiter.params.provider.MethodSource)8 Row (org.apache.ignite.internal.schema.row.Row)5 BinaryRow (org.apache.ignite.internal.schema.BinaryRow)4 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 List (java.util.List)2 Random (java.util.Random)2 Set (java.util.Set)2 Collectors (java.util.stream.Collectors)2 NativeTypeSpec (org.apache.ignite.internal.schema.NativeTypeSpec)2 NativeTypes (org.apache.ignite.internal.schema.NativeTypes)2 BYTES (org.apache.ignite.internal.schema.NativeTypes.BYTES)2 DATE (org.apache.ignite.internal.schema.NativeTypes.DATE)2 DOUBLE (org.apache.ignite.internal.schema.NativeTypes.DOUBLE)2 FLOAT (org.apache.ignite.internal.schema.NativeTypes.FLOAT)2