You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2017/07/21 06:41:34 UTC
[22/50] [abbrv] geode git commit: GEODE-2860: Refactor use of
EventTracker
http://git-wip-us.apache.org/repos/asf/geode/blob/9e7696a6/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
new file mode 100644
index 0000000..1f969ef
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/event/EventTrackerExpiryTaskTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.event;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.CancelCriterion;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.ha.ThreadIdentifier;
+import org.apache.geode.test.junit.categories.UnitTest;
+
+@Category(UnitTest.class)
+public class EventTrackerExpiryTaskTest {
+ private static final long TIME_TO_LIVE = 100;
+
+ private EventTrackerExpiryTask task;
+
+ @Before
+ public void setup() {
+ task = new EventTrackerExpiryTask(TIME_TO_LIVE);
+ }
+
+ @Test
+ public void hasNoTrackersWhenInitialized() {
+ assertEquals(0, task.getNumberOfTrackers());
+ }
+
+ @Test
+ public void addsTrackersCorrectly() {
+ task.addTracker(NonDistributedEventTracker.getInstance());
+ assertEquals(1, task.getNumberOfTrackers());
+ }
+
+ @Test
+ public void removedTrackersCorrectly() {
+ task.addTracker(NonDistributedEventTracker.getInstance());
+ task.removeTracker(NonDistributedEventTracker.getInstance());
+ assertEquals(0, task.getNumberOfTrackers());
+ }
+
+ @Test
+ public void removesExpiredSequenceIdHolder() {
+ DistributedEventTracker tracker = constructTestTracker();
+ task.addTracker(tracker);
+ EventSequenceNumberHolder sequenceIdHolder = new EventSequenceNumberHolder(0L, null);
+ tracker.recordSequenceNumber(new ThreadIdentifier(new byte[0], 0L), sequenceIdHolder);
+ sequenceIdHolder.setEndOfLifeTimestamp(System.currentTimeMillis() - TIME_TO_LIVE);
+ task.run2();
+ assertEquals(0, tracker.getRecordedEvents().size());
+ }
+
+ @Test
+ public void doesNotRemoveNonExpiredSequenceIdHolder() {
+ DistributedEventTracker tracker = constructTestTracker();
+ task.addTracker(tracker);
+ EventSequenceNumberHolder sequenceIdHolder = new EventSequenceNumberHolder(0L, null);
+ tracker.recordSequenceNumber(new ThreadIdentifier(new byte[0], 0L), sequenceIdHolder);
+ sequenceIdHolder.setEndOfLifeTimestamp(System.currentTimeMillis() + 10000);
+ task.run2();
+ assertEquals(1, tracker.getRecordedEvents().size());
+ }
+
+ @Test
+ public void doesNotRemoveNewSequenceIdHolder() {
+ DistributedEventTracker tracker = constructTestTracker();
+ task.addTracker(tracker);
+ EventSequenceNumberHolder sequenceIdHolder = new EventSequenceNumberHolder(0L, null);
+ tracker.recordSequenceNumber(new ThreadIdentifier(new byte[0], 0L), sequenceIdHolder);
+ task.run2();
+ assertEquals(1, tracker.getRecordedEvents().size());
+ }
+
+ private DistributedEventTracker constructTestTracker() {
+ return new DistributedEventTracker(mock(InternalCache.class), mock(CancelCriterion.class),
+ "test region");
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/9e7696a6/geode-core/src/test/java/org/apache/geode/internal/cache/event/NonDistributedEventTrackerTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/event/NonDistributedEventTrackerTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/event/NonDistributedEventTrackerTest.java
new file mode 100644
index 0000000..7ba531f
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/event/NonDistributedEventTrackerTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.event;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.internal.cache.EventID;
+import org.apache.geode.internal.cache.InternalCacheEvent;
+import org.apache.geode.test.junit.categories.UnitTest;
+
+@Category(UnitTest.class)
+public class NonDistributedEventTrackerTest {
+ private NonDistributedEventTracker tracker = NonDistributedEventTracker.getInstance();
+
+ @Test
+ public void getStateReturnsNull() {
+ assertNull(tracker.getState());
+ }
+
+ @Test
+ public void hasSeenEventReturnsFalse() {
+ assertFalse(tracker.hasSeenEvent(mock(InternalCacheEvent.class)));
+ assertFalse(tracker.hasSeenEvent(mock(EventID.class)));
+ assertFalse(tracker.hasSeenEvent(mock(EventID.class), mock(InternalCacheEvent.class)));
+ }
+
+ @Test
+ public void findVersionTagForSequenceReturnsNull() {
+ assertNull(tracker.findVersionTagForSequence(mock(EventID.class)));
+ }
+
+ @Test
+ public void findVersionTagForBulkOpReturnsNull() {
+ assertNull(tracker.findVersionTagForBulkOp(mock(EventID.class)));
+ }
+
+ @Test
+ public void returnsCorrectName() {
+ assertEquals(NonDistributedEventTracker.NAME, tracker.getName());
+ }
+
+ @Test
+ public void syncBulkOpExecutesProvidedRunnable() {
+ Runnable runnable = mock(Runnable.class);
+ tracker.syncBulkOp(runnable, mock(EventID.class), false);
+ tracker.syncBulkOp(runnable, mock(EventID.class), true);
+ verify(runnable, times(2)).run();
+ }
+
+ @Test
+ public void isInitializedReturnsTrue() {
+ assertTrue(tracker.isInitialized());
+ }
+
+ @Test
+ public void isInitialImageProviderReturnsFalse() {
+ assertFalse(tracker.isInitialImageProvider(mock(DistributedMember.class)));
+ }
+
+ @Test
+ public void getRecordedBulkOpVersionTagsReturnsNull() {
+ assertNull(tracker.getRecordedBulkOpVersionTags());
+ }
+
+ @Test
+ public void getRecordedEventsReturnsNull() {
+ assertNull(tracker.getRecordedEvents());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/9e7696a6/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
----------------------------------------------------------------------
diff --git a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
index b84ac39..e2a708d 100644
--- a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
+++ b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
@@ -1103,8 +1103,8 @@ fromData,24,2a2bb7001e2a2bb8001fb500042a2bb900200100b50002b1
toData,24,2a2bb700212ab400042bb800222b2ab40002b900230200b1
org/apache/geode/internal/cache/InitialImageOperation$RequestImageMessage,2
-fromData,98,2a2bb700b42a2bb800b5b500172a2bb900b60100b500022a2bb900b70100b500552a2bb900b70100b500032a2bb900b70100b5004b2a2bb800b8c000b9b5003a2a2bb800b8c000bab500262a2bb800b8c000bbb5003b2a2bb800b8c000bcb50030b1
-toData,86,2a2bb700bd2ab400172bb800be2b2ab40002b900bf02002b2ab40055b900c002002b2ab40003b900c002002b2ab4004bb900c002002ab4003a2bb800c12ab400262bb800c12ab4003b2bb800c12ab400302bb800c1b1
+fromData,98,2a2bb700b52a2bb800b6b500172a2bb900b70100b500022a2bb900b80100b500552a2bb900b80100b500032a2bb900b80100b5004b2a2bb800b9c000bab5003a2a2bb800b9c000bbb500262a2bb800b9c000bcb5003b2a2bb800b9c000bdb50030b1
+toData,86,2a2bb700be2ab400172bb800bf2b2ab40002b900c002002b2ab40055b900c102002b2ab40003b900c102002b2ab4004bb900c102002ab4003a2bb800c22ab400262bb800c22ab4003b2bb800c22ab400302bb800c2b1
org/apache/geode/internal/cache/InitialImageOperation$RequestRVVMessage,2
fromData,34,2a2bb7001e2a2bb8001fb500052a2bb900200100b500022a2bb900210100b50003b1
@@ -1447,6 +1447,10 @@ org/apache/geode/internal/cache/control/ResourceAdvisor$ResourceProfileMessage,2
fromData,84,2a2bb7001d2a2bb9001e0100b500032bb9001e01003d1c029f00362a1cbd0004b50005033e1d2ab40005bea20020bb000459b7001f3a0419042bb800202ab400051d190453840301a7ffdda700082a01b50005b1
toData,71,2a2bb700212b2ab40003b9002202002ab40005c6002c2b2ab40005beb900220200033d1c2ab40005bea200132ab400051c322bb80023840201a7ffeaa7000a2b02b900220200b1
+org/apache/geode/internal/cache/event/EventSequenceNumberHolder,2
+fromData,22,2a2bb900100100b500042a2bb80011c00012b50005b1
+toData,19,2b2ab40004b9001303002ab400052bb80014b1
+
org/apache/geode/internal/cache/execute/FunctionRemoteContext,2
fromData,95,2bb800084d2cc100099900252a03b500072a2cc00009b8000ab500022ab40002c7001b2a2cc00009b5000ba700102a2cc0000cb500022a04b500072a2bb80008b500032a2bb8000db500042a2bb8000db500052a2bb8000eb6000fb50006b1
toData,73,2ab4000799000e2ab400022bb80010a700102ab40002b9001101002bb800102ab400032bb800102ab40004c000122bb800132ab40005c000122bb800132ab40006b800142bb80015b1