summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2017-12-15 11:12:05 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-12-15 11:12:05 +0000
commit3fb6123bd1436402c0c57701f132c2e04722a3c9 (patch)
tree85e8de974c25bce7e361d0ddee96e5952b6039e9
parent9ca7c9294663d035d3e903e74f81ffdfb7127d3e (diff)
parent2f4a87c5c2547e38a16612e51485a9a445786993 (diff)
downloadmockito-3fb6123bd1436402c0c57701f132c2e04722a3c9.tar.gz
Merge "Add mockito-inline for host tests" am: e64ea0b85e
am: 2f4a87c5c2 Change-Id: I407dc6d59a5c1717d2510b8619ab34383376ea8d
-rw-r--r--Android.bp7
-rw-r--r--subprojects/inline/inline.gradle10
-rw-r--r--subprojects/inline/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker1
-rw-r--r--subprojects/inline/src/test/java/org/mockitoinline/FinalClassMockingTest.java21
-rw-r--r--subprojects/inline/src/test/java/org/mockitoinline/PluginTest.java20
-rw-r--r--subprojects/inline/src/test/java/org/mockitoinline/StubbingLocationTest.java38
-rwxr-xr-xupdate_source.sh1
7 files changed, 98 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
index 257539c..03d57ee 100644
--- a/Android.bp
+++ b/Android.bp
@@ -67,6 +67,13 @@ java_library_static {
sdk_version: "16",
}
+// Compatibility library for old name of host target
+java_library_host {
+ name: "mockito-inline",
+ static_libs: ["mockito"],
+ java_resource_dirs: ["subprojects/inline/src/main/resources"],
+}
+
// Main target for dependent projects. Bundles all the run-time dependencies
// needed to run Mockito tests on the device.
java_library_static {
diff --git a/subprojects/inline/inline.gradle b/subprojects/inline/inline.gradle
new file mode 100644
index 0000000..be10361
--- /dev/null
+++ b/subprojects/inline/inline.gradle
@@ -0,0 +1,10 @@
+description = "Mockito preconfigured inline mock maker (intermediate and to be superseeded by automatic usage in a future version)"
+
+apply from: "$rootDir/gradle/java-library.gradle"
+
+dependencies {
+ compile project.rootProject
+ testCompile libraries.junit4
+}
+
+tasks.javadoc.enabled = false
diff --git a/subprojects/inline/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker b/subprojects/inline/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000..ca6ee9c
--- /dev/null
+++ b/subprojects/inline/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline \ No newline at end of file
diff --git a/subprojects/inline/src/test/java/org/mockitoinline/FinalClassMockingTest.java b/subprojects/inline/src/test/java/org/mockitoinline/FinalClassMockingTest.java
new file mode 100644
index 0000000..0f2ea78
--- /dev/null
+++ b/subprojects/inline/src/test/java/org/mockitoinline/FinalClassMockingTest.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2017 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockitoinline;
+
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class FinalClassMockingTest {
+
+ @Test
+ public void no_exception_while_mocking_final_class() throws Exception {
+ Mockito.mock(FinalClass.class);
+ }
+
+ private static final class FinalClass {
+
+ }
+
+}
diff --git a/subprojects/inline/src/test/java/org/mockitoinline/PluginTest.java b/subprojects/inline/src/test/java/org/mockitoinline/PluginTest.java
new file mode 100644
index 0000000..19526db
--- /dev/null
+++ b/subprojects/inline/src/test/java/org/mockitoinline/PluginTest.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2017 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockitoinline;
+
+import org.junit.Test;
+import org.mockito.internal.configuration.plugins.Plugins;
+import org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker;
+
+import static org.junit.Assert.*;
+
+public class PluginTest {
+
+ @Test
+ public void plugin_type_should_be_inline() throws Exception {
+ assertTrue(Plugins.getMockMaker() instanceof InlineByteBuddyMockMaker);
+ }
+
+}
diff --git a/subprojects/inline/src/test/java/org/mockitoinline/StubbingLocationTest.java b/subprojects/inline/src/test/java/org/mockitoinline/StubbingLocationTest.java
new file mode 100644
index 0000000..8476006
--- /dev/null
+++ b/subprojects/inline/src/test/java/org/mockitoinline/StubbingLocationTest.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2017 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockitoinline;
+
+import java.util.Collections;
+import java.util.Set;
+import org.junit.Test;
+import org.mockito.internal.invocation.finder.AllInvocationsFinder;
+import org.mockito.stubbing.Stubbing;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class StubbingLocationTest {
+
+ @Test
+ public void stubbing_location_should_be_the_correct_point() {
+ ConcreteClass mock = mock(ConcreteClass.class);
+ String frame;
+ // Initializing 'frame' at the method parameter point is to gain the exact line number of the stubbing point.
+ when(mock.concreteMethod(frame = Thread.currentThread().getStackTrace()[1].toString())).thenReturn("");
+ mock.concreteMethod(frame);
+ Set<Stubbing> stubbings = AllInvocationsFinder.findStubbings(Collections.singleton(mock));
+ assertEquals(1, stubbings.size());
+ String location = stubbings.iterator().next().getInvocation().getLocation().toString();
+ assertEquals("-> at " + frame, location);
+ }
+
+ static final class ConcreteClass {
+ String concreteMethod(String s) {
+ throw new RuntimeException(s);
+ }
+ }
+
+}
diff --git a/update_source.sh b/update_source.sh
index 122fb3b..12f1a36 100755
--- a/update_source.sh
+++ b/update_source.sh
@@ -25,6 +25,7 @@ INCLUDE="
LICENSE
src
subprojects/android
+ subprojects/inline
"
EXCLUDE="