You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ignite.apache.org by GitBox <gi...@apache.org> on 2021/09/08 07:58:53 UTC

[GitHub] [ignite-3] ibessonov commented on a change in pull request #323: IGNITE-15456 Integrate RocksDBKeyValueStorage into the production code

ibessonov commented on a change in pull request #323:
URL: https://github.com/apache/ignite-3/pull/323#discussion_r704135118



##########
File path: modules/metastorage-client/src/integrationTest/java/org/apache/ignite/internal/metastorage/client/ITMetaStorageServiceTest.java
##########
@@ -791,112 +606,88 @@ public void testRangeClose() throws Exception {
 
     @Test
     public void testWatchOnUpdate() throws Exception {
-        org.apache.ignite.internal.metastorage.server.WatchEvent returnedWatchEvents = new org.apache.ignite.internal.metastorage.server.WatchEvent(List.of(
+        org.apache.ignite.internal.metastorage.server.WatchEvent expectedEvent =
+            new org.apache.ignite.internal.metastorage.server.WatchEvent(List.of(
                 new org.apache.ignite.internal.metastorage.server.EntryEvent(
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[]{2},
-                                new byte[]{20},
-                                1,
-                                1
-                        ),
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[]{2},
-                                new byte[]{21},
-                                2,
-                                4
-                        )
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {2},
+                        new byte[] {20},
+                        1,
+                        1
+                    ),
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {2},
+                        new byte[] {21},
+                        2,
+                        4
+                    )
                 ),
                 new org.apache.ignite.internal.metastorage.server.EntryEvent(
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[] {3},
-                                new byte[] {20},
-                                1,
-                                2
-                        ),
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[] {3},
-                                new byte[]{},
-                                2,
-                                5
-                        )
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {3},
+                        new byte[] {20},
+                        1,
+                        2
+                    ),
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {3},
+                        new byte[] {},
+                        2,
+                        5
+                    )
                 ),
                 new org.apache.ignite.internal.metastorage.server.EntryEvent(
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[] {4},
-                                new byte[] {20},
-                                1,
-                                3
-                        ),
-                        new org.apache.ignite.internal.metastorage.server.Entry(
-                                new byte[] {4},
-                                new byte[] {},
-                                3,
-                                6
-                        )
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {4},
+                        new byte[] {20},
+                        1,
+                        3
+                    ),
+                    new org.apache.ignite.internal.metastorage.server.Entry(
+                        new byte[] {4},
+                        new byte[] {},
+                        3,
+                        6
+                    )
                 )
-        ));
+            ));
 
-        ByteArray keyFrom = new ByteArray(new byte[]{1});
+        ByteArray keyFrom = new ByteArray(new byte[] {1});
 
-        ByteArray keyTo = new ByteArray(new byte[]{10});
+        ByteArray keyTo = new ByteArray(new byte[] {10});
 
         long rev = 2;
 
-        MetaStorageService metaStorageSvc = prepareMetaStorage(
-                new AbstractKeyValueStorage() {
-                    @Override public Cursor<org.apache.ignite.internal.metastorage.server.WatchEvent> watch(byte[] keyFrom, byte @Nullable [] keyTo, long rev) {
-                        return new Cursor<>() {
-                            private final Iterator<org.apache.ignite.internal.metastorage.server.WatchEvent> it = new Iterator<>() {
-                                @Override public boolean hasNext() {
-
-                                    return retirevedItemCnt.get() < returnedWatchEvents.entryEvents().size();
-                                }
-
-                                @Override public org.apache.ignite.internal.metastorage.server.WatchEvent next() {
-                                    return returnedWatchEvents;
-                                }
-                            };
-
-                            AtomicInteger retirevedItemCnt = new AtomicInteger(0);
-
-                            @Override public void close() throws Exception {
-                                // No-op.
-                            }
+        when(mockStorage.watch(keyFrom.bytes(), keyTo.bytes(), rev)).thenAnswer(invocation -> {
+            var cursor = mock(Cursor.class);
 
-                            @NotNull @Override public Iterator<org.apache.ignite.internal.metastorage.server.WatchEvent> iterator() {
-                                return it;
-                            }
+            when(cursor.hasNext()).thenReturn(true);
+            when(cursor.next()).thenReturn(expectedEvent);
 
-                            @Override public boolean hasNext() {
-                                return it.hasNext();
-                            }
-
-                            @Override
-                            public org.apache.ignite.internal.metastorage.server.WatchEvent next() {
-                                return it.next();
-                            }
-                        };
-                    }
-                });
+            return cursor;
+        });
 
         CountDownLatch latch = new CountDownLatch(1);
 
         IgniteUuid watchId = metaStorageSvc.watch(keyFrom, keyTo, rev, new WatchListener() {
-            @Override public boolean onUpdate(@NotNull WatchEvent events) {
-                List gotEvents = new ArrayList();
-
-                List returnedWatchEvents = new ArrayList(events.entryEvents());
-
-                Iterator<EntryEvent> iter = events.entryEvents().iterator();
+            @Override public boolean onUpdate(@NotNull WatchEvent event) {
+                Collection<EntryEvent> expectedEvents = expectedEvent.entryEvents();
+                Collection<org.apache.ignite.internal.metastorage.client.EntryEvent> actualEvents = event.entryEvents();
 
-                while (iter.hasNext())
-                    gotEvents.add(iter.next());
+                assertEquals(expectedEvents.size(), actualEvents.size());
 
-                assertEquals(3, gotEvents.size());
+                Iterator<EntryEvent> expectedIterator = expectedEvents.iterator();
+                Iterator<org.apache.ignite.internal.metastorage.client.EntryEvent> actualIterator = actualEvents.iterator();
 
-                assertTrue(gotEvents.contains(returnedWatchEvents.get(0)));
+                while (expectedIterator.hasNext() && actualIterator.hasNext()) {
+                    org.apache.ignite.internal.metastorage.server.EntryEvent expectedEntryEvent = expectedIterator.next();

Review comment:
       What's up with all these full names? Are there collisions somewhere? I don't get it




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org