ibessonov commented on a change in pull request #323:
URL: https://github.com/apache/ignite-3/pull/323#discussion_r704152586
##########
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:
Ok, thank you for the clarification
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]