Fix issue with checking if the event should be consumed

Bug: Issue 14835
Change-Id: Ie9fe3c84cbf8634748bd8583a3a6513379bee050
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
index a3bd4e9..1f3b092 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
@@ -68,7 +68,7 @@
     String sourceInstanceId = event.instanceId;
 
     if ((Strings.isNullOrEmpty(sourceInstanceId) || instanceId.equals(sourceInstanceId))
-        && !shouldConsumeEvent(event)) {
+        || !shouldConsumeEvent(event)) {
       if (Strings.isNullOrEmpty(sourceInstanceId)) {
         logger.atWarning().log(
             String.format(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubscriberTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubscriberTestBase.java
index 2aa81e6..034f7ee 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubscriberTestBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubscriberTestBase.java
@@ -28,7 +28,8 @@
 @RunWith(MockitoJUnitRunner.class)
 @Ignore
 public abstract class AbstractSubscriberTestBase {
-  protected static final String INSTANCE_ID = "node-instance-id";
+  protected static final String NODE_INSTANCE_ID = "node-instance-id";
+  protected static final String INSTANCE_ID = "other-node-instance-id";
   protected static final String PROJECT_NAME = "project-name";
 
   @Mock protected DroppedEventListener droppedEventListeners;
@@ -71,6 +72,23 @@
     }
   }
 
+  @SuppressWarnings("unchecked")
+  @Test
+  public void shouldSkipLocalEvents()
+      throws IOException, PermissionBackendException, CacheNotFoundException {
+    for (Event event : events()) {
+      event.instanceId = NODE_INSTANCE_ID;
+      when(projectsFilter.matches(any(String.class))).thenReturn(true);
+
+      objectUnderTest.getConsumer().accept(event);
+
+      verify(projectsFilter, never()).matches(PROJECT_NAME);
+      verify(eventRouter, never()).route(event);
+      verify(droppedEventListeners, times(1)).onEventDropped(event);
+      reset(projectsFilter, eventRouter, droppedEventListeners);
+    }
+  }
+
   protected abstract AbstractSubcriber objectUnderTest();
 
   protected abstract List<Event> events();
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriberTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriberTest.java
index 0ab06d0..5031f36 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriberTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriberTest.java
@@ -68,7 +68,7 @@
     return new BatchIndexEventSubscriber(
         (IndexEventRouter) eventRouter,
         asDynamicSet(droppedEventListeners),
-        INSTANCE_ID,
+        NODE_INSTANCE_ID,
         msgLog,
         subscriberMetrics,
         cfg,
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriberTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriberTest.java
index 610f8de..70f811b 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriberTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriberTest.java
@@ -68,7 +68,7 @@
     return new IndexEventSubscriber(
         (IndexEventRouter) eventRouter,
         asDynamicSet(droppedEventListeners),
-        INSTANCE_ID,
+        NODE_INSTANCE_ID,
         msgLog,
         subscriberMetrics,
         cfg,
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ProjectUpdateEventSubscriberTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ProjectUpdateEventSubscriberTest.java
index c6f74c8..201ee81 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ProjectUpdateEventSubscriberTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/ProjectUpdateEventSubscriberTest.java
@@ -41,7 +41,7 @@
     return new ProjectUpdateEventSubscriber(
         (ProjectListUpdateRouter) eventRouter,
         asDynamicSet(droppedEventListeners),
-        INSTANCE_ID,
+        NODE_INSTANCE_ID,
         msgLog,
         subscriberMetrics,
         cfg,
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriberTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriberTest.java
index b6b6337..cd15bb7 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriberTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriberTest.java
@@ -48,7 +48,7 @@
     return new StreamEventSubscriber(
         (StreamEventRouter) eventRouter,
         asDynamicSet(droppedEventListeners),
-        INSTANCE_ID,
+        NODE_INSTANCE_ID,
         msgLog,
         subscriberMetrics,
         cfg,