This is an automated email from the ASF dual-hosted git repository.

apolovtsev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 86b8dcbe3d IGNITE-22764 Increase readability in MvPartitionStorage 
tests (#4101)
86b8dcbe3d is described below

commit 86b8dcbe3d3bd10385a8747b25cb704d7250ad47
Author: Stanislav Markin <[email protected]>
AuthorDate: Wed Jul 17 11:26:43 2024 -0300

    IGNITE-22764 Increase readability in MvPartitionStorage tests (#4101)
---
 .../ignite/internal/table/ItInternalTableTest.java |  10 +-
 .../ignite/internal/schema/BinaryRowMatcher.java   |  44 +++--
 .../internal/storage/MvPartitionStorage.java       |   1 -
 .../AbstractMvPartitionStorageConcurrencyTest.java |  15 +-
 .../storage/AbstractMvPartitionStorageGcTest.java  |  19 +-
 .../storage/AbstractMvPartitionStorageTest.java    | 202 +++++++++++----------
 .../storage/impl/TestMvPartitionStorage.java       |   9 +-
 .../mv/AbstractPageMemoryMvPartitionStorage.java   |   2 +-
 .../AbstractPageMemoryMvPartitionStorageTest.java  |  11 +-
 ...PersistentPageMemoryMvPartitionStorageTest.java |   4 +-
 10 files changed, 170 insertions(+), 147 deletions(-)

diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItInternalTableTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItInternalTableTest.java
index 34a65fab00..eb9931cf31 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItInternalTableTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItInternalTableTest.java
@@ -21,12 +21,12 @@ import static 
org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
 import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_REPLICA_COUNT;
 import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.is;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -185,7 +185,7 @@ public class ItInternalTableTest extends 
BaseIgniteAbstractTest {
 
         res = internalTable.get(keyRow, node.clock().now(), node.node()).get();
 
-        assertThat(res, is(equalToRow(keyValueRow)));
+        assertThat(res, isRow(keyValueRow));
     }
 
     @Test
@@ -217,7 +217,7 @@ public class ItInternalTableTest extends 
BaseIgniteAbstractTest {
 
         BinaryRow res = internalTable.get(keyRow, node.clock().now(), 
node.node()).get();
 
-        assertThat(res, is(equalToRow(keyValueRow2)));
+        assertThat(res, isRow(keyValueRow2));
     }
 
     @Test
@@ -278,13 +278,13 @@ public class ItInternalTableTest extends 
BaseIgniteAbstractTest {
 
         BinaryRow res = internalTable.get(keyRow, node.clock().now(), 
node.node()).get();
 
-        assertThat(res, is(equalToRow(keyValueRow)));
+        assertThat(res, isRow(keyValueRow));
 
         tx2.commit();
 
         res = internalTable.get(keyRow, node.clock().now(), node.node()).get();
 
-        assertThat(res, is(equalToRow(keyValueRow2)));
+        assertThat(res, isRow(keyValueRow2));
     }
 
     @Test
diff --git 
a/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/BinaryRowMatcher.java
 
b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/BinaryRowMatcher.java
index f2d33f10ca..db4f9c21f7 100644
--- 
a/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/BinaryRowMatcher.java
+++ 
b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/BinaryRowMatcher.java
@@ -17,39 +17,51 @@
 
 package org.apache.ignite.internal.schema;
 
+import static org.hamcrest.Matchers.is;
+
 import java.nio.ByteBuffer;
 import java.util.Arrays;
-import org.hamcrest.Description;
-import org.hamcrest.TypeSafeMatcher;
+import org.hamcrest.CustomMatcher;
+import org.hamcrest.Matcher;
+import org.jetbrains.annotations.Nullable;
 
 /** Matcher for comparing {@link BinaryRow}s. */
-public class BinaryRowMatcher extends TypeSafeMatcher<BinaryRow> {
-    private final BinaryRow row;
+public class BinaryRowMatcher extends CustomMatcher<BinaryRow> {
+    private final @Nullable BinaryRow row;
 
-    private BinaryRowMatcher(BinaryRow row) {
+    private BinaryRowMatcher(@Nullable BinaryRow row) {
+        super("Expected row to be equal to " + rowToString(row));
         this.row = row;
     }
 
-    public static BinaryRowMatcher equalToRow(BinaryRow row) {
+    public static BinaryRowMatcher equalToRow(@Nullable BinaryRow row) {
         return new BinaryRowMatcher(row);
     }
 
-    @Override
-    protected boolean matchesSafely(BinaryRow item) {
-        return row.schemaVersion() == item.schemaVersion() && 
row.tupleSlice().equals(item.tupleSlice());
+    public static Matcher<BinaryRow> isRow(@Nullable BinaryRow expectedRow) {
+        return is(equalToRow(expectedRow));
     }
 
     @Override
-    public void describeTo(Description description) {
-        description.appendValue(rowToString(row));
-    }
+    public boolean matches(@Nullable Object o) {
+        if (row == null || o == null) {
+            return row == o; // Both are null.
+        }
 
-    @Override
-    protected void describeMismatchSafely(BinaryRow item, Description 
mismatchDescription) {
-        mismatchDescription.appendText("was ").appendValue(rowToString(item));
+        if (!(o instanceof BinaryRow)) {
+            return false;
+        }
+
+        BinaryRow item = (BinaryRow) o;
+
+        return row.schemaVersion() == item.schemaVersion() && 
row.tupleSlice().equals(item.tupleSlice());
     }
 
-    private static String rowToString(BinaryRow row) {
+    private static String rowToString(@Nullable BinaryRow row) {
+        if (row == null) {
+            return "{null row}";
+        }
+
         ByteBuffer tupleSlice = row.tupleSlice();
 
         byte[] array = new byte[tupleSlice.remaining()];
diff --git 
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
 
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
index 1b33131d23..e9602b32fb 100644
--- 
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
+++ 
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
@@ -228,7 +228,6 @@ public interface MvPartitionStorage extends 
ManuallyCloseable {
      *
      * @param timestamp Timestamp. Can't be {@code null}.
      * @return Cursor.
-     * @throws TxIdMismatchException If there's another pending update 
associated with different transaction id.
      * @throws StorageException If failed to read data from the storage.
      */
     PartitionTimestampCursor scan(HybridTimestamp timestamp) throws 
StorageException;
diff --git 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageConcurrencyTest.java
 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageConcurrencyTest.java
index 3059a08ffd..966a8b2426 100644
--- 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageConcurrencyTest.java
+++ 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageConcurrencyTest.java
@@ -18,11 +18,13 @@
 package org.apache.ignite.internal.storage;
 
 import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static org.apache.ignite.internal.testframework.IgniteTestUtils.runRace;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.empty;
 import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
@@ -73,7 +75,7 @@ public abstract class 
AbstractMvPartitionStorageConcurrencyTest extends BaseMvPa
                     () -> scanFirstEntry(HybridTimestamp.MAX_VALUE)
             );
 
-            assertThat(read(ROW_ID, clock.now()), is(equalToRow(TABLE_ROW)));
+            assertThat(read(ROW_ID, clock.now()), isRow(TABLE_ROW));
         }
     }
 
@@ -89,7 +91,7 @@ public abstract class 
AbstractMvPartitionStorageConcurrencyTest extends BaseMvPa
                     () -> scanFirstEntry(HybridTimestamp.MAX_VALUE)
             );
 
-            assertThat(read(ROW_ID, clock.now()), is(equalToRow(TABLE_ROW2)));
+            assertThat(read(ROW_ID, clock.now()), isRow(TABLE_ROW2));
         }
     }
 
@@ -144,7 +146,7 @@ public abstract class 
AbstractMvPartitionStorageConcurrencyTest extends BaseMvPa
                     () -> addWrite(ROW_ID, TABLE_ROW2, TX_ID)
             );
 
-            assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), 
is(equalToRow(TABLE_ROW2)));
+            assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), 
isRow(TABLE_ROW2));
 
             abortWrite(ROW_ID);
 
@@ -167,7 +169,7 @@ public abstract class 
AbstractMvPartitionStorageConcurrencyTest extends BaseMvPa
                     () -> commitWrite(ROW_ID, clock.now())
             );
 
-            assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), 
is(equalToRow(TABLE_ROW2)));
+            assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), 
isRow(TABLE_ROW2));
 
             assertNull(pollForVacuum(HybridTimestamp.MAX_VALUE));
 
@@ -270,10 +272,9 @@ public abstract class 
AbstractMvPartitionStorageConcurrencyTest extends BaseMvPa
         rows.removeIf(matcher::matches);
     }
 
-    @SuppressWarnings("ResultOfMethodCallIgnored")
     private void scanFirstEntry(HybridTimestamp firstCommitTs) {
-        try (var cursor = scan(firstCommitTs)) {
-            cursor.hasNext();
+        try (PartitionTimestampCursor cursor = scan(firstCommitTs)) {
+            assertDoesNotThrow(cursor::hasNext);
         }
     }
 
diff --git 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageGcTest.java
 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageGcTest.java
index 75062ea410..96a960afe7 100644
--- 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageGcTest.java
+++ 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageGcTest.java
@@ -17,9 +17,8 @@
 
 package org.apache.ignite.internal.storage;
 
-import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
@@ -61,13 +60,13 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
 
         assertNotNull(gcedRow);
 
-        assertThat(gcedRow.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(gcedRow.binaryRow(), isRow(TABLE_ROW));
 
         // Read from the old timestamp should return null.
         assertNull(read(ROW_ID, firstCommitTs));
 
         // Read from the newer timestamp should return last value.
-        assertThat(read(ROW_ID, secondCommitTs), is(equalToRow(TABLE_ROW2)));
+        assertThat(read(ROW_ID, secondCommitTs), isRow(TABLE_ROW2));
     }
 
     @Test
@@ -78,7 +77,7 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
         BinaryRowAndRowId row = pollForVacuum(secondCommitTs);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW));
 
         assertNull(read(ROW_ID, secondCommitTs));
 
@@ -98,7 +97,7 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
         BinaryRowAndRowId row = pollForVacuum(lastCommitTs);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW));
 
         assertNull(read(ROW_ID, lastCommitTs));
 
@@ -121,13 +120,13 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
         BinaryRowAndRowId row = pollForVacuum(lowWatermark);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW));
 
         // Poll the next oldest row.
         row = pollForVacuum(lowWatermark);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW2)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW2));
 
         // Nothing else to poll.
         assertNull(pollForVacuum(lowWatermark));
@@ -144,7 +143,7 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
         BinaryRowAndRowId row = pollForVacuum(HybridTimestamp.MAX_VALUE);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW));
     }
 
     @Test
@@ -158,6 +157,6 @@ public abstract class AbstractMvPartitionStorageGcTest 
extends BaseMvPartitionSt
         BinaryRowAndRowId row = pollForVacuum(HybridTimestamp.MAX_VALUE);
 
         assertNotNull(row);
-        assertThat(row.binaryRow(), is(equalToRow(TABLE_ROW)));
+        assertThat(row.binaryRow(), isRow(TABLE_ROW));
     }
 }
diff --git 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
index 513df2c142..e859083cdb 100644
--- 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
+++ 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.storage;
 
 import static java.util.stream.Collectors.toList;
-import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
@@ -29,6 +29,7 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -97,7 +98,7 @@ public abstract class AbstractMvPartitionStorageTest extends 
BaseMvPartitionStor
         addWrite(rowId, binaryRow, txId);
 
         // Read with timestamp returns write-intent.
-        assertThat(read(rowId, clock.now()), is(equalToRow(binaryRow)));
+        assertThat(read(rowId, clock.now()), isRow(binaryRow));
 
         // Remove write.
         addWrite(rowId, null, txId);
@@ -143,8 +144,8 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         assertNull(read(rowId, tsBefore));
 
         // Row is valid at the time during and after writing.
-        assertThat(read(rowId, tsExact), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, tsAfter), is(equalToRow(binaryRow)));
+        assertThat(read(rowId, tsExact), isRow(binaryRow));
+        assertThat(read(rowId, tsAfter), isRow(binaryRow));
 
         TestValue newValue = new TestValue(30, "duh");
 
@@ -156,22 +157,22 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         // Same checks, but now there are two different versions.
         assertNull(read(rowId, tsBefore));
 
-        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), 
is(equalToRow(newRow)));
+        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), isRow(newRow));
 
-        assertThat(read(rowId, tsExact), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, tsAfter), is(equalToRow(newRow)));
-        assertThat(read(rowId, clock.now()), is(equalToRow(newRow)));
+        assertThat(read(rowId, tsExact), isRow(binaryRow));
+        assertThat(read(rowId, tsAfter), isRow(newRow));
+        assertThat(read(rowId, clock.now()), isRow(newRow));
 
         // Only latest time behavior changes after commit.
         HybridTimestamp newRowCommitTs = clock.now();
         commitWrite(rowId, newRowCommitTs);
 
-        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), 
is(equalToRow(newRow)));
+        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), isRow(newRow));
 
-        assertThat(read(rowId, tsExact), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, tsAfter), is(equalToRow(binaryRow)));
+        assertThat(read(rowId, tsExact), isRow(binaryRow));
+        assertThat(read(rowId, tsAfter), isRow(binaryRow));
 
-        assertThat(read(rowId, clock.now()), is(equalToRow(newRow)));
+        assertThat(read(rowId, clock.now()), isRow(newRow));
 
         // Remove.
         UUID removeTxId = newTransactionId();
@@ -182,9 +183,9 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         assertNull(read(rowId, HybridTimestamp.MAX_VALUE));
 
-        assertThat(read(rowId, tsExact), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, tsAfter), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, newRowCommitTs), is(equalToRow(newRow)));
+        assertThat(read(rowId, tsExact), isRow(binaryRow));
+        assertThat(read(rowId, tsAfter), isRow(binaryRow));
+        assertThat(read(rowId, newRowCommitTs), isRow(newRow));
 
         assertNull(read(rowId, clock.now()));
 
@@ -198,8 +199,8 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         assertNull(read(rowId, removeTs));
         assertNull(read(rowId, clock.now()));
 
-        assertThat(read(rowId, tsExact), is(equalToRow(binaryRow)));
-        assertThat(read(rowId, tsAfter), is(equalToRow(binaryRow)));
+        assertThat(read(rowId, tsExact), isRow(binaryRow));
+        assertThat(read(rowId, tsAfter), isRow(binaryRow));
     }
 
     /**
@@ -289,62 +290,73 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         RowId rowId2 = new RowId(PARTITION_ID, 10, 20);
 
         TestKey key1 = new TestKey(1, "1");
-        BinaryRow binaryRow11 = binaryRow(key1, value11);
-        BinaryRow binaryRow12 = binaryRow(key1, value12);
+        BinaryRow binaryRow1Commited = binaryRow(key1, value11);
+        BinaryRow binaryRow1WriteIntent = binaryRow(key1, value12);
 
-        addWrite(rowId1, binaryRow11, txId);
+        addWrite(rowId1, binaryRow1Commited, txId);
         HybridTimestamp commitTs1 = clock.now();
         commitWrite(rowId1, commitTs1);
 
-        addWrite(rowId1, binaryRow12, newTransactionId());
+        addWrite(rowId1, binaryRow1WriteIntent, newTransactionId());
 
         TestKey key2 = new TestKey(2, "2");
-        BinaryRow binaryRow21 = binaryRow(key2, value21);
-        BinaryRow binaryRow22 = binaryRow(key2, value22);
+        BinaryRow binaryRow2Commited = binaryRow(key2, value21);
+        BinaryRow binaryRow2WriteIntent = binaryRow(key2, value22);
 
-        addWrite(rowId2, binaryRow21, txId);
+        addWrite(rowId2, binaryRow2Commited, txId);
         HybridTimestamp commitTs2 = clock.now();
         commitWrite(rowId2, commitTs2);
 
-        addWrite(rowId2, binaryRow22, newTransactionId());
+        addWrite(rowId2, binaryRow2WriteIntent, newTransactionId());
 
         try (PartitionTimestampCursor cursor = scan(clock.now())) {
             assertThrows(IllegalStateException.class, () -> 
cursor.committed(commitTs1));
 
-            assertTrue(cursor.hasNext());
-            while (cursor.hasNext()) {
+            {
+                // First row
                 assertTrue(cursor.hasNext());
-
                 ReadResult res = cursor.next();
 
                 assertNotNull(res);
                 assertTrue(res.isWriteIntent());
                 assertFalse(res.isEmpty());
 
-                BinaryRow expectedRow1;
-                BinaryRow expectedRow2;
-                HybridTimestamp commitTs;
+                // Since scan doesn't ends exactly on the commit timestamp, 
write-intent row is returned.
+                assertThat(res.binaryRow(), isRow(binaryRow1WriteIntent));
+
+                // Committed row is visible for exact commit timestamp.
+                assertThat(cursor.committed(commitTs1), 
isRow(binaryRow1Commited));
+
+                // No row because there is a commited row after given cursor 
timestamp.
+                assertThat(cursor.committed(before(commitTs1)), isRow(null));
+
+                // Write-intent row because a given cursor timestamp is after 
the most recent commit.
+                assertThat(cursor.committed(after(commitTs1)), 
isRow(binaryRow1WriteIntent));
+            }
+
+            {
+                // Second row
+                assertTrue(cursor.hasNext());
+                ReadResult res = cursor.next();
 
-                TestKey readKey = key(res.binaryRow());
+                assertNotNull(res);
+                assertTrue(res.isWriteIntent());
+                assertFalse(res.isEmpty());
 
-                if (readKey.equals(key1)) {
-                    expectedRow1 = binaryRow11;
-                    expectedRow2 = binaryRow12;
-                    commitTs = commitTs1;
-                } else {
-                    expectedRow1 = binaryRow21;
-                    expectedRow2 = binaryRow22;
-                    commitTs = commitTs2;
-                }
+                // Since scan doesn't ends exactly on the commit timestamp, 
write-intent row is returned.
+                assertThat(res.binaryRow(), isRow(binaryRow2WriteIntent));
 
-                assertThat(res.binaryRow(), is(equalToRow(expectedRow2)));
+                // Committed row is visible for exact commit timestamp.
+                assertThat(cursor.committed(commitTs2), 
isRow(binaryRow2Commited));
 
-                BinaryRow previousRow = cursor.committed(commitTs);
+                // No row because there is a commited row after given cursor 
timestamp.
+                assertThat(cursor.committed(before(commitTs2)), isRow(null));
 
-                assertNotNull(previousRow);
-                assertThat(previousRow, is(equalToRow(expectedRow1)));
+                // Write-intent row because a given cursor timestamp is after 
the most recent commit.
+                assertThat(cursor.committed(after(commitTs2)), 
isRow(binaryRow2WriteIntent));
             }
 
+            // Cursor is exhausted.
             assertFalse(cursor.hasNext());
             assertFalse(cursor.hasNext());
 
@@ -354,6 +366,14 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         }
     }
 
+    private static HybridTimestamp before(HybridTimestamp ts) {
+        return ts.subtractPhysicalTime(1);
+    }
+
+    private static HybridTimestamp after(HybridTimestamp ts) {
+        return ts.addPhysicalTime(1);
+    }
+
     private static List<TestValue> convert(PartitionTimestampCursor cursor) {
         try (cursor) {
             return cursor.stream()
@@ -370,7 +390,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         ReadResult foundResult = storage.read(rowId, 
HybridTimestamp.MAX_VALUE);
 
         assertThat(foundResult.rowId(), is(rowId));
-        assertThat(foundResult.binaryRow(), is(equalToRow(binaryRow)));
+        assertThat(foundResult.binaryRow(), isRow(binaryRow));
     }
 
     @Test
@@ -381,7 +401,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         ReadResult foundResult = storage.read(rowId, 
HybridTimestamp.MAX_VALUE);
 
         assertThat(foundResult.rowId(), is(rowId));
-        assertThat(foundResult.binaryRow(), is(equalToRow(binaryRow)));
+        assertThat(foundResult.binaryRow(), isRow(binaryRow));
     }
 
     @Test
@@ -394,7 +414,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         ReadResult foundResult = storage.read(rowId2, 
HybridTimestamp.MAX_VALUE);
 
         assertThat(foundResult.rowId(), is(rowId2));
-        assertThat(foundResult.binaryRow(), is(equalToRow(binaryRow2)));
+        assertThat(foundResult.binaryRow(), isRow(binaryRow2));
     }
 
     @Test
@@ -408,7 +428,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         ReadResult foundResult = storage.read(rowId2, 
HybridTimestamp.MAX_VALUE);
 
         assertThat(foundResult.rowId(), is(rowId2));
-        assertThat(foundResult.binaryRow(), is(equalToRow(binaryRow2)));
+        assertThat(foundResult.binaryRow(), isRow(binaryRow2));
     }
 
     @Test
@@ -419,7 +439,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, commitTimestamp);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -431,7 +451,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         HybridTimestamp afterCommit = clock.now();
         BinaryRow foundRow = read(rowId, afterCommit);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -444,7 +464,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, beforeCommit);
 
-        assertThat(foundRow, is(nullValue()));
+        assertThat(foundRow, isRow(null));
     }
 
     @Test
@@ -459,7 +479,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, secondVersionTs);
 
-        assertThat(foundRow, is(equalToRow(binaryRow2)));
+        assertThat(foundRow, isRow(binaryRow2));
     }
 
     @Test
@@ -473,7 +493,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, firstVersionTs);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -489,7 +509,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, tsInBetween);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -501,7 +521,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         HybridTimestamp latestTs = clock.now();
         BinaryRow foundRow = read(rowId, latestTs);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -514,7 +534,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         HybridTimestamp latestTs = clock.now();
         BinaryRow foundRow = read(rowId, latestTs);
 
-        assertThat(foundRow, is(equalToRow(binaryRow2)));
+        assertThat(foundRow, isRow(binaryRow2));
     }
 
     @Test
@@ -532,7 +552,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, HybridTimestamp.MAX_VALUE);
 
-        assertThat(foundRow, is(equalToRow(binaryRow2)));
+        assertThat(foundRow, isRow(binaryRow2));
     }
 
     @Test
@@ -541,7 +561,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow returnedRow = addWrite(rowId, binaryRow2, txId);
 
-        assertThat(returnedRow, is(equalToRow(binaryRow)));
+        assertThat(returnedRow, isRow(binaryRow));
     }
 
     @Test
@@ -551,13 +571,13 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow returnedRow = addWrite(rowId, binaryRow2, txId);
 
-        assertThat(returnedRow, is(nullValue()));
+        assertThat(returnedRow, isRow(null));
     }
 
     @Test
     void addWriteCommittedTombstone() {
         addWriteCommitted(ROW_ID, binaryRow, clock.now());
-        assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), 
is(equalToRow(binaryRow)));
+        assertThat(read(ROW_ID, HybridTimestamp.MAX_VALUE), isRow(binaryRow));
 
         addWriteCommitted(ROW_ID, null, clock.now());
         assertNull(read(ROW_ID, HybridTimestamp.MAX_VALUE));
@@ -581,7 +601,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, HybridTimestamp.MAX_VALUE);
 
-        assertThat(foundRow, is(nullValue()));
+        assertThat(foundRow, isRow(null));
     }
 
     @Test
@@ -594,7 +614,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, clock.now());
 
-        assertThat(foundRow, is(nullValue()));
+        assertThat(foundRow, isRow(null));
     }
 
     @Test
@@ -608,7 +628,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, firstTimestamp);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -617,7 +637,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow rowFromRemoval = addWrite(rowId, null, txId);
 
-        assertThat(rowFromRemoval, is(equalToRow(binaryRow)));
+        assertThat(rowFromRemoval, isRow(binaryRow));
     }
 
     @Test
@@ -627,7 +647,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow rowFromRemoval = addWrite(rowId, null, newTransactionId());
 
-        assertThat(rowFromRemoval, is(nullValue()));
+        assertThat(rowFromRemoval, isRow(null));
     }
 
     @Test
@@ -648,7 +668,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, clock.now());
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -658,11 +678,11 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         abortWrite(rowId);
 
-        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), 
is(equalToRow(binaryRow)));
+        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), isRow(binaryRow));
 
         commitWrite(rowId, clock.now());
 
-        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), 
is(equalToRow(binaryRow)));
+        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), isRow(binaryRow));
     }
 
     @Test
@@ -676,7 +696,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, HybridTimestamp.MAX_VALUE);
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     @Test
@@ -687,7 +707,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, clock.now());
 
-        assertThat(foundRow, is(nullValue()));
+        assertThat(foundRow, isRow(null));
     }
 
     @Test
@@ -696,7 +716,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, HybridTimestamp.MAX_VALUE);
 
-        assertThat(foundRow, is(nullValue()));
+        assertThat(foundRow, isRow(null));
     }
 
     @Test
@@ -705,7 +725,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow returnedRow = abortWrite(rowId);
 
-        assertThat(returnedRow, is(equalToRow(binaryRow)));
+        assertThat(returnedRow, isRow(binaryRow));
     }
 
     @Test
@@ -716,7 +736,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         // We see the uncommitted row.
         assertThat(foundResult.rowId(), is(rowId));
-        assertThat(foundResult.binaryRow(), is(equalToRow(binaryRow3)));
+        assertThat(foundResult.binaryRow(), isRow(binaryRow3));
     }
 
     @Test
@@ -748,7 +768,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         assertNull(res.transactionId());
         assertNull(res.commitTableId());
         assertEquals(ReadResult.UNDEFINED_COMMIT_PARTITION_ID, 
res.commitPartitionId());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow)));
+        assertThat(res.binaryRow(), isRow(binaryRow));
 
         res = storage.read(rowId, clock.now());
 
@@ -757,7 +777,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         assertEquals(txId2, res.transactionId());
         assertEquals(COMMIT_TABLE_ID, res.commitTableId());
         assertEquals(PARTITION_ID, res.commitPartitionId());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow2)));
+        assertThat(res.binaryRow(), isRow(binaryRow2));
     }
 
     private RowId commitAbortAndAddUncommitted() {
@@ -787,7 +807,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
             ReadResult result = cursor.next();
 
             assertThat(result.rowId(), is(rowId));
-            assertThat(result.binaryRow(), is(equalToRow(binaryRow3)));
+            assertThat(result.binaryRow(), isRow(binaryRow3));
 
             assertFalse(cursor.hasNext());
         }
@@ -799,7 +819,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         BinaryRow foundRow = read(rowId, clock.now());
 
-        assertThat(foundRow, is(equalToRow(binaryRow)));
+        assertThat(foundRow, isRow(binaryRow));
     }
 
     /**
@@ -867,21 +887,21 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
 
         assertNotNull(res);
         assertNull(res.newestCommitTimestamp());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow)));
+        assertThat(res.binaryRow(), isRow(binaryRow));
 
         // Read between two commits.
         res = storage.read(rowId, betweenCommits);
 
         assertNotNull(res);
         assertNull(res.newestCommitTimestamp());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow)));
+        assertThat(res.binaryRow(), isRow(binaryRow));
 
         // Read at exact time of second commit.
         res = storage.read(rowId, second);
 
         assertNotNull(res);
         assertNull(res.newestCommitTimestamp());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow2)));
+        assertThat(res.binaryRow(), isRow(binaryRow2));
 
         // Read after second commit (write intent).
         res = storage.read(rowId, after);
@@ -889,7 +909,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         assertNotNull(res);
         assertNotNull(res.newestCommitTimestamp());
         assertEquals(second, res.newestCommitTimestamp());
-        assertThat(res.binaryRow(), is(equalToRow(binaryRow3)));
+        assertThat(res.binaryRow(), isRow(binaryRow3));
     }
 
     @Test
@@ -940,7 +960,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
             return null;
         });
 
-        assertThat(read(higherRowId, clock.now()), is(equalToRow(binaryRow)));
+        assertThat(read(higherRowId, clock.now()), isRow(binaryRow));
     }
 
     @Test
@@ -955,7 +975,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
             return null;
         });
 
-        assertThat(read(lowerRowId, clock.now()), is(equalToRow(binaryRow)));
+        assertThat(read(lowerRowId, clock.now()), isRow(binaryRow));
     }
 
     @Test
@@ -1072,11 +1092,11 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
             assertTrue(next.isWriteIntent());
 
             assertThat(next.rowId(), is(rowIdAndCommitTs.get1()));
-            assertThat(next.binaryRow(), is(equalToRow(binaryRow2)));
+            assertThat(next.binaryRow(), isRow(binaryRow2));
 
             BinaryRow committedRow = cursor.committed(rowIdAndCommitTs.get2());
 
-            assertThat(committedRow, is(equalToRow(binaryRow)));
+            assertThat(committedRow, isRow(binaryRow));
         }
     }
 
@@ -1161,7 +1181,7 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         addWriteCommitted(rowId, binaryRow, clock.now());
 
         // Read with timestamp returns write-intent.
-        assertThat(storage.read(rowId, clock.now()).binaryRow(), 
is(equalToRow(binaryRow)));
+        assertThat(storage.read(rowId, clock.now()).binaryRow(), 
isRow(binaryRow));
     }
 
     @Test
@@ -1173,8 +1193,8 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         addWriteCommitted(rowId, binaryRow, ts1);
         addWriteCommitted(rowId, binaryRow2, clock.now());
 
-        assertThat(storage.read(rowId, clock.now()).binaryRow(), 
is(equalToRow(binaryRow2)));
-        assertThat(storage.read(rowId, ts1).binaryRow(), 
is(equalToRow(binaryRow)));
+        assertThat(storage.read(rowId, clock.now()).binaryRow(), 
isRow(binaryRow2));
+        assertThat(storage.read(rowId, ts1).binaryRow(), isRow(binaryRow));
     }
 
     @Test
@@ -1299,10 +1319,10 @@ public abstract class AbstractMvPartitionStorageTest 
extends BaseMvPartitionStor
         try (PartitionTimestampCursor cursor = 
scan(scanTsProvider.scanTimestamp(clock))) {
             cursor.next();
 
-            cursor.committed(commitTs1);
+            assertDoesNotThrow(() -> cursor.committed(commitTs1));
 
             ReadResult result2 = cursor.next();
-            assertThat(result2.binaryRow(), is(equalToRow(binaryRow2)));
+            assertThat(result2.binaryRow(), isRow(binaryRow2));
 
             assertFalse(cursor.hasNext());
         }
diff --git 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
index 9393b857a7..058b8574b3 100644
--- 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
+++ 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
@@ -502,14 +502,7 @@ public class TestMvPartitionStorage implements 
MvPartitionStorage {
                     throw new IllegalStateException();
                 }
 
-                // We don't check if row conforms the key filter here, because 
we've already checked it.
-                ReadResult read = read(currentChain, timestamp, null);
-
-                if (read.transactionId() == null) {
-                    return read.binaryRow();
-                }
-
-                return null;
+                return read(currentChain, timestamp, null).binaryRow();
             }
 
             @Override
diff --git 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
index 3f66000c20..71dbad0a29 100644
--- 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
+++ 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
@@ -253,7 +253,7 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
     }
 
     private static boolean lookingForLatestVersion(HybridTimestamp timestamp) {
-        return timestamp == HybridTimestamp.MAX_VALUE;
+        return HybridTimestamp.MAX_VALUE.equals(timestamp);
     }
 
     ReadResult findLatestRowVersion(VersionChain versionChain) {
diff --git 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
index 353fc2d350..3607ed7a1c 100644
--- 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
+++ 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
@@ -18,9 +18,8 @@
 package org.apache.ignite.internal.storage.pagememory.mv;
 
 import static java.util.stream.Collectors.joining;
-import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
 
 import java.util.stream.IntStream;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -55,7 +54,7 @@ abstract class AbstractPageMemoryMvPartitionStorageTest 
extends AbstractMvPartit
 
         BinaryRow foundRow = read(rowId, HybridTimestamp.MAX_VALUE);
 
-        assertThat(foundRow, is(equalToRow(longRow)));
+        assertThat(foundRow, isRow(longRow));
     }
 
     private BinaryRow rowStoredInFragments() {
@@ -81,7 +80,7 @@ abstract class AbstractPageMemoryMvPartitionStorageTest 
extends AbstractMvPartit
 
         BinaryRow foundRow = read(rowId, clock.now());
 
-        assertThat(foundRow, is(equalToRow(longRow)));
+        assertThat(foundRow, isRow(longRow));
     }
 
     @Test
@@ -93,7 +92,7 @@ abstract class AbstractPageMemoryMvPartitionStorageTest 
extends AbstractMvPartit
         try (PartitionTimestampCursor cursor = 
storage.scan(HybridTimestamp.MAX_VALUE)) {
             BinaryRow foundRow = cursor.next().binaryRow();
 
-            assertThat(foundRow, is(equalToRow(longRow)));
+            assertThat(foundRow, isRow(longRow));
         }
     }
 
@@ -108,7 +107,7 @@ abstract class AbstractPageMemoryMvPartitionStorageTest 
extends AbstractMvPartit
         try (PartitionTimestampCursor cursor = 
storage.scan(HybridTimestamp.MAX_VALUE)) {
             BinaryRow foundRow = cursor.next().binaryRow();
 
-            assertThat(foundRow, is(equalToRow(longRow)));
+            assertThat(foundRow, isRow(longRow));
         }
     }
 
diff --git 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
index f6a590e5d6..e9045da568 100644
--- 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
+++ 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.storage.pagememory.mv;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
 import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_PARTITION_COUNT;
 import static 
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointState.FINISHED;
-import static org.apache.ignite.internal.schema.BinaryRowMatcher.equalToRow;
+import static org.apache.ignite.internal.schema.BinaryRowMatcher.isRow;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
@@ -113,7 +113,7 @@ class PersistentPageMemoryMvPartitionStorageTest extends 
AbstractPageMemoryMvPar
 
         restartStorage();
 
-        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), 
is(equalToRow(binaryRow)));
+        assertThat(read(rowId, HybridTimestamp.MAX_VALUE), isRow(binaryRow));
     }
 
     private void restartStorage() throws Exception {


Reply via email to