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 2018/12/10 23:02:07 UTC

[geode] branch feature/GEODE-6143 created (now fb77417)

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

zhouxj pushed a change to branch feature/GEODE-6143
in repository https://gitbox.apache.org/repos/asf/geode.git.


      at fb77417  GEODE-6143: remove PowerMock from LuceneEventListenerJUnitTest, fix and add             some test cases.

This branch includes the following new commits:

     new fb77417  GEODE-6143: remove PowerMock from LuceneEventListenerJUnitTest, fix and add             some test cases.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[geode] 01/01: GEODE-6143: remove PowerMock from LuceneEventListenerJUnitTest, fix and add some test cases.

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhouxj pushed a commit to branch feature/GEODE-6143
in repository https://gitbox.apache.org/repos/asf/geode.git

commit fb77417b1c7a4edfae3aaf1e2aa46f4f23d1eab9
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Mon Dec 10 15:00:50 2018 -0800

    GEODE-6143: remove PowerMock from LuceneEventListenerJUnitTest, fix and add
                some test cases.
---
 .../cache/lucene/internal/LuceneEventListener.java | 10 +++--
 .../internal/LuceneEventListenerJUnitTest.java     | 52 +++++++++++++++-------
 2 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
index db44981..b28f021 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
@@ -59,6 +59,10 @@ public class LuceneEventListener implements AsyncEventListener {
   @Override
   public void close() {}
 
+  void logDebugMessage(String msg, Exception e) {
+    logger.debug(msg, e);
+  }
+
   @Override
   public boolean processEvents(List<AsyncEvent> events) {
     try {
@@ -103,13 +107,13 @@ public class LuceneEventListener implements AsyncEventListener {
       }
       return true;
     } catch (BucketNotFoundException | RegionDestroyedException | PrimaryBucketException e) {
-      logger.debug("Bucket not found while saving to lucene index: " + e.getMessage(), e);
+      logDebugMessage("Bucket not found while saving to lucene index: " + e.getMessage(), e);
       return false;
     } catch (CacheClosedException e) {
-      logger.debug("Unable to save to lucene index, cache has been closed", e);
+      logDebugMessage("Unable to save to lucene index, cache has been closed", e);
       return false;
     } catch (AlreadyClosedException e) {
-      logger.debug("Unable to commit, the lucene index is already closed", e);
+      logDebugMessage("Unable to commit, the lucene index is already closed", e);
       return false;
     } catch (IOException e) {
       throw new InternalGemFireError("Unable to save to lucene index", e);
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
index 8255859..677b4e5 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
@@ -17,14 +17,15 @@ package org.apache.geode.cache.lucene.internal;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.contains;
+import static org.mockito.ArgumentMatchers.startsWith;
 import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyString;
 import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -36,20 +37,16 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.logging.log4j.Logger;
+import org.apache.lucene.store.AlreadyClosedException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 
 import org.apache.geode.InternalGemFireError;
+import org.apache.geode.cache.CacheClosedException;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.asyncqueue.AsyncEvent;
 import org.apache.geode.cache.lucene.internal.repository.IndexRepository;
@@ -58,17 +55,13 @@ import org.apache.geode.internal.Assert;
 import org.apache.geode.internal.cache.BucketNotFoundException;
 import org.apache.geode.internal.cache.EntrySnapshot;
 import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.test.fake.Fakes;
 import org.apache.geode.test.junit.categories.LuceneTest;
 
 /**
  * Unit test that async event listener dispatched the events to the appropriate repository.
  */
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({LuceneEventListener.class, LogService.class})
 @Category({LuceneTest.class})
-@PowerMockIgnore({"*.UnitTest", "*.LuceneTest"})
 public class LuceneEventListenerJUnitTest {
 
   private RepositoryManager manager;
@@ -80,6 +73,7 @@ public class LuceneEventListenerJUnitTest {
     cache = Fakes.cache();
     manager = Mockito.mock(RepositoryManager.class);
     listener = new LuceneEventListener(cache, manager);
+    listener = spy(listener);
   }
 
   @After
@@ -154,19 +148,43 @@ public class LuceneEventListenerJUnitTest {
   }
 
   @Test
-  public void shouldHandleBucketNotFoundExceptionWithoutLoggingError()
+  public void shouldHandleBucketNotFoundException()
       throws BucketNotFoundException {
     Mockito.when(manager.getRepository(any(), any(), any()))
         .thenThrow(BucketNotFoundException.class);
 
-    PowerMockito.mockStatic(LogService.class);
-    Logger logger = Mockito.mock(Logger.class);
-    Mockito.when(LogService.getLogger()).thenReturn(logger);
+    AsyncEvent event = Mockito.mock(AsyncEvent.class);
+    boolean result = listener.processEvents(Arrays.asList(event));
+    assertFalse(result);
+    verify(listener, times(1))
+        .logDebugMessage(startsWith("Bucket not found"), any(BucketNotFoundException.class));
+  }
+
+  @Test
+  public void shouldHandleCacheClosedExceptionundException()
+      throws BucketNotFoundException {
+    Mockito.when(manager.getRepository(any(), any(), any()))
+        .thenThrow(CacheClosedException.class);
+
+    AsyncEvent event = Mockito.mock(AsyncEvent.class);
+    boolean result = listener.processEvents(Arrays.asList(event));
+    assertFalse(result);
+    verify(listener, times(1))
+        .logDebugMessage(contains("cache has been closed"), any(CacheClosedException.class));
+  }
+
+  @Test
+  public void shouldHandleAlreadyClosedException()
+      throws BucketNotFoundException {
+    Mockito.when(manager.getRepository(any(), any(), any()))
+        .thenThrow(AlreadyClosedException.class);
 
     AsyncEvent event = Mockito.mock(AsyncEvent.class);
     boolean result = listener.processEvents(Arrays.asList(event));
     assertFalse(result);
-    verify(logger, never()).error(anyString(), any(Exception.class));
+    verify(listener, times(1))
+        .logDebugMessage(contains("the lucene index is already closed"),
+            any(AlreadyClosedException.class));
   }
 
   @Test