Fix dual build: switch to EasyMock + fix NPE

Cannot get dual build to work with mockito -- switch to EasyMock.

Discovered NullPointerException while testing change -- fixed.

Change-Id: I1fc9da05b83258e9761e8e348c9e17e53aa57788
diff --git a/BUILD b/BUILD
index 77d9d09..43871b1 100644
--- a/BUILD
+++ b/BUILD
@@ -57,9 +57,7 @@
 
 TEST_DEPS = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
     ":copyright_scanner",
-    "//lib/mockito",
     "@guava//jar",
-    "@mockito//jar",
 ]
 
 java_library(
diff --git a/WORKSPACE b/WORKSPACE
index c8ab81d..d752151 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -66,30 +66,3 @@
     artifact = "com.google.j2objc:j2objc-annotations:1.1",
     sha1 = "ed28ded51a8b1c6b112568def5f4b455e6809019",
 )
-
-maven_jar(
-    name = "mockito",
-    artifact = "org.mockito:mockito-core:2.24.0",
-    sha1 = "969a7bcb6f16e076904336ebc7ca171d412cc1f9",
-)
-
-BYTE_BUDDY_VERSION = "1.9.7"
-
-maven_jar(
-    name = "byte-buddy",
-    artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
-    sha1 = "8fea78fea6449e1738b675cb155ce8422661e237",
-)
-
-maven_jar(
-    name = "byte-buddy-agent",
-    artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
-    sha1 = "8e7d1b599f4943851ffea125fd9780e572727fc0",
-)
-
-maven_jar(
-    name = "objenesis",
-    artifact = "org.objenesis:objenesis:2.6",
-    sha1 = "639033469776fd37c08358c6b92a4761feb2af4b",
-)
-
diff --git a/lib/mockito/BUILD b/lib/mockito/BUILD
deleted file mode 100644
index 89a1400..0000000
--- a/lib/mockito/BUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-package(
-    default_testonly = True,
-    default_visibility = ["//visibility:public"],
-)
-
-java_library(
-    name = "mockito",
-    data = ["//lib:LICENSE-Apache2.0"],
-    # Only exposed for plugin tests; core tests should use Easymock
-    exports = ["@mockito//jar"],
-    runtime_deps = [
-        ":byte-buddy",
-        ":byte-buddy-agent",
-        ":objenesis",
-    ],
-)
-
-java_library(
-    name = "byte-buddy",
-    data = ["//lib:LICENSE-Apache2.0"],
-    exports = ["@byte-buddy//jar"],
-)
-
-java_library(
-    name = "byte-buddy-agent",
-    data = ["//lib:LICENSE-Apache2.0"],
-    exports = ["@byte-buddy-agent//jar"],
-)
-
-java_library(
-    name = "objenesis",
-    data = ["//lib:LICENSE-Apache2.0"],
-    exports = ["@objenesis//jar"],
-)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/copyright/CopyrightValidator.java b/src/main/java/com/googlesource/gerrit/plugins/copyright/CopyrightValidator.java
index cda88ce..f17ed95 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/copyright/CopyrightValidator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/copyright/CopyrightValidator.java
@@ -281,17 +281,19 @@
     metrics.scanRevisionTimerByBranch.record(branch, scanTime, TimeUnit.MILLISECONDS);
 
     ReviewResult result = reviewApi.reportScanFindings(project, scannerConfig, event, findings);
-    if (result.error != null && !result.error.equals("")) {
+    if (result != null && result.error != null && !result.error.equals("")) {
       logger.atSevere().log(
           "%s plugin revision %s: error posting review: %s",
           pluginName, event.getChange().currentRevision, result.error);
     }
-    for (Map.Entry<String, AddReviewerResult> entry : result.reviewers.entrySet()) {
-      AddReviewerResult arr = entry.getValue();
-      if (arr.error != null && !arr.error.equals("")) {
-        logger.atSevere().log(
-            "%s plugin revision %s: error adding reviewer %s: %s",
-            pluginName, event.getChange().currentRevision, entry.getKey(), arr.error);
+    if (result != null && result.reviewers != null) {
+      for (Map.Entry<String, AddReviewerResult> entry : result.reviewers.entrySet()) {
+        AddReviewerResult arr = entry.getValue();
+        if (arr.error != null && !arr.error.equals("")) {
+          logger.atSevere().log(
+              "%s plugin revision %s: error adding reviewer %s: %s",
+              pluginName, event.getChange().currentRevision, entry.getKey(), arr.error);
+        }
       }
     }
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/copyright/CopyrightReviewApiTest.java b/src/test/java/com/googlesource/gerrit/plugins/copyright/CopyrightReviewApiTest.java
index 2c1cda7..f71ea0f 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/copyright/CopyrightReviewApiTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/copyright/CopyrightReviewApiTest.java
@@ -21,11 +21,12 @@
 import static com.googlesource.gerrit.plugins.copyright.lib.CopyrightScanner.PartyType.FORBIDDEN;
 import static com.googlesource.gerrit.plugins.copyright.lib.CopyrightScanner.PartyType.THIRD_PARTY;
 import static com.googlesource.gerrit.plugins.copyright.lib.CopyrightScanner.PartyType.UNKNOWN;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.truth.Correspondence;
@@ -42,15 +43,15 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.runners.JUnit4;
 
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(JUnit4.class)
 public class CopyrightReviewApiTest {
   private static final PluginUser pluginUser = new FakePluginUser();
   private static final CurrentUser currentUser = new FakeCurrentUser();
 
-  @Mock private IdentifiedUser.GenericFactory identifiedUserFactory;
+  private IdentifiedUser.GenericFactory identifiedUserFactory =
+      createMock(IdentifiedUser.GenericFactory.class);
 
   private CopyrightReviewApi reviewApi;
 
@@ -71,16 +72,24 @@
 
   @Test
   public void testGetSendingUser_fromAccountIdConfigured() throws Exception {
+    expect(
+            identifiedUserFactory.runAs(
+                eq(null), anyObject(Account.Id.class), anyObject(PluginUser.class)))
+        .andReturn(null);
+    replay(identifiedUserFactory);
+
     CurrentUser from = reviewApi.getSendingUser(808);
-    verify(identifiedUserFactory, times(1))
-        .runAs(eq(null), any(Account.Id.class), any(PluginUser.class));
+
+    verify(identifiedUserFactory);
   }
 
   @Test
   public void testGetSendingUser_noFromAccountIdConfigured() throws Exception {
+    replay(identifiedUserFactory);
+
     CurrentUser from = reviewApi.getSendingUser(0);
-    verify(identifiedUserFactory, never())
-        .runAs(eq(null), any(Account.Id.class), any(PluginUser.class));
+
+    verify(identifiedUserFactory);
     assertThat(from).isSameAs(currentUser);
   }