diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8d161ba007..b30f313e27 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,7 +26,7 @@ jobs:
# Definition of the build matrix
strategy:
matrix:
- java: [8, 11, 15]
+ java: [8, 11, 17]
mock-maker: ['mock-maker-default', 'mock-maker-inline']
# All build steps
@@ -41,7 +41,7 @@ jobs:
- name: 2. Set up Java ${{ matrix.java }}
uses: actions/setup-java@v2
with:
- distribution: 'adopt'
+ distribution: 'zulu'
java-version: ${{ matrix.java }}
- name: 3. Validate Gradle wrapper
@@ -63,8 +63,8 @@ jobs:
- name: 7. Upload coverage report
run: |
- ./gradlew coverageReport -s --scan && cp build/reports/jacoco/mockitoCoverage/mockitoCoverage.xml jacoco.xml || echo "Code coverage failed"
- bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
+ ./gradlew coverageReport -s --scan && cp build/reports/jacoco/mockitoCoverage/mockitoCoverage.xml jacoco.xml
+ bash <(curl -s https://codecov.io/bash)
#
# Release job, only for pushes to the main development branch
diff --git a/build.gradle b/build.gradle
index d932bb87dc..e672ad9d6e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
- classpath 'gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0'
+ classpath 'gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin:0.16.1'
classpath 'net.ltgt.gradle:gradle-errorprone-plugin:2.0.2'
classpath "io.github.gradle-nexus:publish-plugin:1.1.0"
@@ -14,8 +14,8 @@ buildscript {
classpath 'org.shipkit:shipkit-auto-version:1.1.19'
classpath 'com.google.googlejavaformat:google-java-format:1.11.0'
- classpath 'com.android.tools.build:gradle:4.0.2'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
+ classpath 'com.android.tools.build:gradle:4.2.0'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
}
}
@@ -23,7 +23,7 @@ plugins {
id 'com.diffplug.gradle.spotless' version '4.5.1'
id 'eclipse'
id 'com.github.ben-manes.versions' version '0.39.0'
- id 'biz.aQute.bnd.builder' version '5.3.0'
+ id 'biz.aQute.bnd.builder' version '6.0.0'
id 'ru.vyarus.animalsniffer' version '1.5.2'
}
@@ -83,16 +83,16 @@ configurations {
}
dependencies {
- compile libraries.bytebuddy, libraries.bytebuddyagent
+ api libraries.bytebuddy, libraries.bytebuddyagent
compileOnly libraries.junit4, libraries.hamcrest, libraries.opentest4j
- compile libraries.objenesis
+ implementation libraries.objenesis
- testCompile libraries.assertj
+ testImplementation libraries.assertj
//putting 'provided' dependencies on test compile and runtime classpath
testCompileOnly configurations.compileOnly
- testRuntime configurations.compileOnly
+ testRuntimeOnly configurations.compileOnly
testUtil sourceSets.test.output
diff --git a/doc/release-notes/official.md b/doc/release-notes/official.md
index 0e680ff95d..edae708fe3 100644
--- a/doc/release-notes/official.md
+++ b/doc/release-notes/official.md
@@ -1936,7 +1936,7 @@ Last version published to Maven Central after the team adopted [Continuous Deliv
* Commits: 5
* 2: Brice Dutheil
* 2: Christian Schwarz
- * 1: Felix Dekker
+ * 1: F.W. Dekker
* Improvements: 4
* Replaced ObjectBox with AtomicReference [(#777)](https://github.com/mockito/mockito/pull/777)
* InvocationMatcher internal improvements [(#776)](https://github.com/mockito/mockito/pull/776)
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 7580df4735..c3926ba2be 100644
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -4,16 +4,16 @@ ext {
def versions = [:]
-versions.bytebuddy = '1.11.13'
-versions.junitJupiter = '5.7.2'
+versions.bytebuddy = '1.11.19'
+versions.junitJupiter = '5.8.1'
versions.errorprone = '2.9.0'
libraries.junit4 = 'junit:junit:4.13.2'
libraries.junitJupiterApi = "org.junit.jupiter:junit-jupiter-api:${versions.junitJupiter}"
-libraries.junitPlatformLauncher = 'org.junit.platform:junit-platform-launcher:1.7.2'
+libraries.junitPlatformLauncher = 'org.junit.platform:junit-platform-launcher:1.8.1'
libraries.junitJupiterEngine = "org.junit.jupiter:junit-jupiter-engine:${versions.junitJupiter}"
libraries.junitVintageEngine = "org.junit.vintage:junit-vintage-engine:${versions.junitJupiter}"
-libraries.assertj = 'org.assertj:assertj-core:3.20.2'
+libraries.assertj = 'org.assertj:assertj-core:3.21.0'
libraries.hamcrest = 'org.hamcrest:hamcrest-core:2.2'
libraries.opentest4j = 'org.opentest4j:opentest4j:1.2.0'
@@ -29,17 +29,17 @@ libraries.autoservice = "com.google.auto.service:auto-service:1.0"
libraries.objenesis = 'org.objenesis:objenesis:3.2'
libraries.osgi = 'org.osgi:osgi.core:8.0.0'
-libraries.equinox = 'org.eclipse.platform:org.eclipse.osgi:3.16.300'
-libraries.bndGradle = 'biz.aQute.bnd:biz.aQute.bnd.gradle:5.3.0'
+libraries.equinox = 'org.eclipse.platform:org.eclipse.osgi:3.17.0'
+libraries.bndGradle = 'biz.aQute.bnd:biz.aQute.bnd.gradle:6.0.0'
-libraries.groovy = 'org.codehaus.groovy:groovy:3.0.8'
+libraries.groovy = 'org.codehaus.groovy:groovy:3.0.9'
-def kotlinVersion = '1.5.21'
+def kotlinVersion = '1.5.31'
libraries.kotlin = [
version: kotlinVersion,
stdlib: "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}",
- coroutines: 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1-native-mt',
+ coroutines: 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt',
gradlePlugin: "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}",
]
libraries.android = [
diff --git a/gradle/java-library.gradle b/gradle/java-library.gradle
index 7402eaeed9..fd29ed862c 100644
--- a/gradle/java-library.gradle
+++ b/gradle/java-library.gradle
@@ -1,4 +1,5 @@
apply plugin: "java"
+apply plugin: "java-library"
group = 'org.mockito'
diff --git a/gradle/mockito-core/inline-mock.gradle b/gradle/mockito-core/inline-mock.gradle
index ae39ffeec1..d555ad6f09 100644
--- a/gradle/mockito-core/inline-mock.gradle
+++ b/gradle/mockito-core/inline-mock.gradle
@@ -1,10 +1,20 @@
-task copyMockMethodDispatcher(type: Copy) {
+task copyMockMethodDispatcher {
dependsOn compileJava
- from "${sourceSets.main.java.outputDir}/org/mockito/internal/creation/bytebuddy/inject"
- into "${sourceSets.main.java.outputDir}/org/mockito/internal/creation/bytebuddy/inject"
- include "MockMethodDispatcher.class"
- rename { String fileName ->
- fileName.replace('.class', '.raw')
+ outputs.files files("${sourceSets.main.java.outputDir}/org/mockito/internal/creation/bytebuddy/inject")
+ .asFileTree
+ .matching { include "*.raw" }
+ .files
+ .collect { "${buildDir}/${it.name}" }
+
+ doLast {
+ copy {
+ from "${sourceSets.main.java.outputDir}/org/mockito/internal/creation/bytebuddy/inject"
+ into "${sourceSets.main.java.outputDir}/org/mockito/internal/creation/bytebuddy/inject"
+ include 'MockMethodDispatcher.class'
+ rename { String fileName ->
+ fileName.replace('.class', '.raw')
+ }
+ }
}
}
classes.dependsOn(copyMockMethodDispatcher)
diff --git a/gradle/mockito-core/osgi.gradle b/gradle/mockito-core/osgi.gradle
index 0c6f395e8b..8dbf3e9063 100644
--- a/gradle/mockito-core/osgi.gradle
+++ b/gradle/mockito-core/osgi.gradle
@@ -1,24 +1,26 @@
apply plugin: 'biz.aQute.bnd.builder'
jar {
- classpath = project.configurations.runtime
- bnd(
- 'Bundle-Name': 'Mockito Mock Library for Java. Core bundle requires Byte Buddy and Objenesis.',
- 'Bundle-SymbolicName': 'org.mockito.mockito-core',
- 'Bundle-Version': "\${version_cleanup;${project.version}}",
- '-versionpolicy': '[${version;==;${@}},${version;+;${@}})',
- 'Export-Package': "org.mockito.internal.*;status=INTERNAL;mandatory:=status;version=${version},org.mockito.*;version=${version}",
- 'Import-Package': [
- 'net.bytebuddy.*;version="[1.6.0,2.0)"',
- 'junit.*;resolution:=optional',
- 'org.junit.*;resolution:=optional',
- 'org.hamcrest;resolution:=optional',
- 'org.objenesis;version="[3.1,4.0)"',
- 'org.opentest4j.*;resolution:=optional',
- 'org.mockito.*'
- ].join(','),
- '-removeheaders': 'Private-Package',
- 'Automatic-Module-Name': 'org.mockito',
- '-noextraheaders': 'true'
- )
+ classpath = project.configurations.compileClasspath
+ bundle {
+ bnd(
+ 'Bundle-Name': 'Mockito Mock Library for Java. Core bundle requires Byte Buddy and Objenesis.',
+ 'Bundle-SymbolicName': 'org.mockito.mockito-core',
+ 'Bundle-Version': "\${version_cleanup;${project.version}}",
+ '-versionpolicy': '[${version;==;${@}},${version;+;${@}})',
+ 'Export-Package': "org.mockito.internal.*;status=INTERNAL;mandatory:=status;version=${version},org.mockito.*;version=${version}",
+ 'Import-Package': [
+ 'net.bytebuddy.*;version="[1.6.0,2.0)"',
+ 'junit.*;resolution:=optional',
+ 'org.junit.*;resolution:=optional',
+ 'org.hamcrest;resolution:=optional',
+ 'org.objenesis;version="[3.1,4.0)"',
+ 'org.opentest4j.*;resolution:=optional',
+ 'org.mockito.*'
+ ].join(','),
+ '-removeheaders': 'Private-Package',
+ 'Automatic-Module-Name': 'org.mockito',
+ '-noextraheaders': 'true'
+ )
+ }
}
diff --git a/gradle/root/coverage.gradle b/gradle/root/coverage.gradle
index 772de84b1b..87d0d7da01 100644
--- a/gradle/root/coverage.gradle
+++ b/gradle/root/coverage.gradle
@@ -19,7 +19,7 @@ task mockitoCoverage(type: JacocoReport) {
apply plugin: "jacoco"
jacoco {
- toolVersion = '0.8.6'
+ toolVersion = '0.8.7'
if (currentProject != rootProject) { //already automatically enhanced in mockito main project as "java" plugin was applied before
applyTo test
@@ -28,6 +28,17 @@ task mockitoCoverage(type: JacocoReport) {
}
mockitoCoverage.executionData(files(test.jacoco.destinationFile).builtBy(test))
+
+ afterEvaluate {
+ classDirectories.setFrom(
+ classDirectories.files.collect {
+ fileTree(
+ dir: it,
+ exclude: ["**/internal/util/concurrent/**"]
+ )
+ }
+ )
+ }
}
}
@@ -37,16 +48,6 @@ task mockitoCoverage(type: JacocoReport) {
html.destination file("${buildDir}/jacocoHtml")
}
- doFirst {
- classDirectories.from = classDirectories.files.collect {
- fileTree(
- dir: it,
- exclude: ['**/org/mockito/internal/util/concurrent/**']
- )
- }
- executionData.from = executionData.files.findAll { it.exists() }
- }
-
doLast {
logger.lifecycle "Jacoco HTML created: file://${new File(reports.html.destination, "index.html").toURI().path}"
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 62d4c05355..e708b1c023 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 8174453a1a..a2e01c0dff 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionSha256Sum=3239b5ed86c3838a37d983ac100573f64c1f3fd8e1eb6c89fa5f9529b5ec091d
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
+distributionSha256Sum=f581709a9c35e9cb92e16f585d2c4bc99b2b1a5f85d2badbd3dc6bff59e1e6dd
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index fbd7c51583..4f906e0c81 100755
--- a/gradlew
+++ b/gradlew
@@ -130,7 +130,7 @@ fi
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
+
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
diff --git a/gradlew.bat b/gradlew.bat
index 5093609d51..107acd32c4 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,21 +64,6 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
@@ -86,7 +71,7 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/settings.gradle.kts b/settings.gradle.kts
index cdaa0e66e3..e13d9aa03c 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -2,8 +2,8 @@ plugins {
id("com.gradle.enterprise").version("3.3.4")
}
-include("deprecatedPluginsTest",
- "inline",
+include("inline",
+ "proxy",
"extTest",
"groovyTest",
"kotlinTest",
@@ -18,7 +18,7 @@ include("deprecatedPluginsTest",
"junitJupiterParallelTest",
"osgi-test")
-if (System.getenv("ANDROID_SDK_ROOT") != null || File(".local.properties").exists()) {
+if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17) && (System.getenv("ANDROID_SDK_ROOT") != null || File(".local.properties").exists())) {
include("androidTest")
} else {
logger.info("Not including android test project due to missing SDK configuration")
diff --git a/src/javadoc/stylesheet.css b/src/javadoc/stylesheet.css
index f4b3dd7fd5..636840de44 100644
--- a/src/javadoc/stylesheet.css
+++ b/src/javadoc/stylesheet.css
@@ -8,8 +8,8 @@ Overall document style
* { margin:0; padding:0; }
body { background-color: #FFFFFF; color:#333; font-size: 100%; }
body { font-size: 0.875em; line-height: 1.286em; font-family: "Helvetica", "Arial", sans-serif; }
-code { color: #777; line-height: 1.286em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter"; }
-pre { color: #555; line-height: 1.0em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter"; }
+code { color: #777; line-height: 1.286em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter", monospace; }
+pre { color: #555; line-height: 1.0em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter", monospace; }
a { text-decoration: none; color: #16569A; /* also try #2E85ED, #0033FF, #6C93C6, #1D7BBE, #1D8DD2 */ }
a:hover, a:hover code { color: #EEEEEE; background-color: #16569A; }
diff --git a/src/main/java/org/mockito/AdditionalAnswers.java b/src/main/java/org/mockito/AdditionalAnswers.java
index c7d2683f63..7825289bde 100644
--- a/src/main/java/org/mockito/AdditionalAnswers.java
+++ b/src/main/java/org/mockito/AdditionalAnswers.java
@@ -330,7 +330,6 @@ public static Answer returnsElementsOf(Collection> elements) {
*
* @since 2.8.44
*/
- @Incubating
public static Answer answersWithDelay(long sleepyTime, Answer answer) {
return (Answer) new AnswersWithDelay(sleepyTime, (Answer
*
* @return empty List.
- * @see #anyListOf(Class)
* @see #isNull()
- * @see #isNull(Class)
*/
public static List anyList() {
reportMatcher(new InstanceOf(List.class, ""));
return new ArrayList(0);
}
- /**
- * Any non-nullList.
- *
- * Generic friendly alias to {@link ArgumentMatchers#anyList()}. It's an alternative to
- * @SuppressWarnings("unchecked") to keep code clean of compiler warnings.
- *
- *
- * This method doesn't do type checks of the list content with the given type parameter, it is only there
- * to avoid casting in the code.
- *
- *
- *
- * Since Mockito 2.1.0, only allow non-null List.
- * As this is a nullable reference, the suggested API to matchnull wrapper
- * would be {@link #isNull()}. We felt this change would make test harnesses much safer than they were with Mockito
- * 1.x.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class.
- *
- *
- * @param clazz Type owned by the list to avoid casting
- * @return empty List.
- * @see #anyList()
- * @see #isNull()
- * @see #isNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static List anyListOf(Class clazz) {
- return anyList();
- }
-
/**
* Any non-nullSet.
*
@@ -544,52 +431,13 @@ public static List anyListOf(Class clazz) {
*
*
* @return empty Set
- * @see #anySetOf(Class)
* @see #isNull()
- * @see #isNull(Class)
*/
public static Set anySet() {
reportMatcher(new InstanceOf(Set.class, ""));
return new HashSet(0);
}
- /**
- * Any non-nullSet.
- *
- *
- * Generic friendly alias to {@link ArgumentMatchers#anySet()}.
- * It's an alternative to @SuppressWarnings("unchecked") to keep code clean of compiler warnings.
- *
- *
- *
- * This method doesn't do type checks of the set content with the given type parameter, it is only there
- * to avoid casting in the code.
- *
- *
- *
- * Since Mockito 2.1.0, only allow non-null Set.
- * As this is a nullable reference, the suggested API to matchnull wrapper
- * would be {@link #isNull()}. We felt this change would make test harnesses much safer than they were with Mockito
- * 1.x.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class.
- *
- *
- * @param clazz Type owned by the Set to avoid casting
- * @return empty Set
- * @see #anySet()
- * @see #isNull()
- * @see #isNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static Set anySetOf(Class clazz) {
- return anySet();
- }
-
/**
* Any non-nullMap.
*
@@ -605,53 +453,13 @@ public static Set anySetOf(Class clazz) {
*
*
* @return empty Map.
- * @see #anyMapOf(Class, Class)
* @see #isNull()
- * @see #isNull(Class)
*/
public static Map anyMap() {
reportMatcher(new InstanceOf(Map.class, ""));
return new HashMap(0);
}
- /**
- * Any non-nullMap.
- *
- *
- * Generic friendly alias to {@link ArgumentMatchers#anyMap()}.
- * It's an alternative to @SuppressWarnings("unchecked") to keep code clean of compiler warnings.
- *
- *
- *
- * This method doesn't do type checks of the map content with the given type parameter, it is only there
- * to avoid casting in the code.
- *
- *
- *
- * Since Mockito 2.1.0, only allow non-null Map.
- * As this is a nullable reference, the suggested API to matchnull wrapper
- * would be {@link #isNull()}. We felt this change would make test harnesses much safer than they were with Mockito
- * 1.x.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class.
- *
- *
- * @param keyClazz Type of the map key to avoid casting
- * @param valueClazz Type of the value to avoid casting
- * @return empty Map.
- * @see #anyMap()
- * @see #isNull()
- * @see #isNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static Map anyMapOf(Class keyClazz, Class valueClazz) {
- return anyMap();
- }
-
/**
* Any non-nullCollection.
*
@@ -667,52 +475,13 @@ public static Map anyMapOf(Class keyClazz, Class valueClazz)
*
*
* @return empty Collection.
- * @see #anyCollectionOf(Class)
* @see #isNull()
- * @see #isNull(Class)
*/
public static Collection anyCollection() {
reportMatcher(new InstanceOf(Collection.class, ""));
return new ArrayList(0);
}
- /**
- * Any non-nullCollection.
- *
- *
- * Generic friendly alias to {@link ArgumentMatchers#anyCollection()}.
- * It's an alternative to @SuppressWarnings("unchecked") to keep code clean of compiler warnings.
- *
- *
- *
- * This method doesn't do type checks of the collection content with the given type parameter, it is only there
- * to avoid casting in the code.
- *
- *
- *
- * Since Mockito 2.1.0, only allow non-null Collection.
- * As this is a nullable reference, the suggested API to matchnull
- * would be {@link #isNull()}. We felt this change would make test harnesses much safer than they were with Mockito
- * 1.x.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class.
- *
- *
- * @param clazz Type owned by the collection to avoid casting
- * @return empty Collection.
- * @see #anyCollection()
- * @see #isNull()
- * @see #isNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static Collection anyCollectionOf(Class clazz) {
- return anyCollection();
- }
-
/**
* Any non-nullIterable.
*
@@ -728,9 +497,7 @@ public static Collection anyCollectionOf(Class clazz) {
*
*
* @return empty Iterable.
- * @see #anyIterableOf(Class)
* @see #isNull()
- * @see #isNull(Class)
* @since 2.1.0
*/
public static Iterable anyIterable() {
@@ -738,44 +505,6 @@ public static Iterable anyIterable() {
return new ArrayList(0);
}
- /**
- * Any non-nullIterable.
- *
- *
- * Generic friendly alias to {@link ArgumentMatchers#anyIterable()}.
- * It's an alternative to @SuppressWarnings("unchecked") to keep code clean of compiler warnings.
- *
- *
- *
- * This method doesn't do type checks of the iterable content with the given type parameter, it is only there
- * to avoid casting in the code.
- *
- *
- *
- * Since Mockito 2.1.0, only allow non-null String.
- * As strings are nullable reference, the suggested API to matchnull wrapper
- * would be {@link #isNull()}. We felt this change would make test harnesses much safer than they were with Mockito
- * 1.x.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class.
- *
- *
- * @param clazz Type owned by the collection to avoid casting
- * @return empty Iterable.
- * @see #anyIterable()
- * @see #isNull()
- * @see #isNull(Class)
- * @since 2.1.0
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static Iterable anyIterableOf(Class clazz) {
- return anyIterable();
- }
-
/**
* boolean argument that is equal to the given value.
*
@@ -966,39 +695,13 @@ public static T same(T value) {
*
*
* @return null.
- * @see #isNull(Class)
* @see #isNotNull()
- * @see #isNotNull(Class)
*/
public static T isNull() {
reportMatcher(Null.NULL);
return null;
}
- /**
- * null argument.
- *
- *
- * The class argument is provided to avoid casting.
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class
- *
- *
- * @param clazz Type to avoid casting
- * @return null.
- * @see #isNull()
- * @see #isNotNull()
- * @see #isNotNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static T isNull(Class clazz) {
- return isNull();
- }
-
/**
* Not null argument.
*
@@ -1017,32 +720,6 @@ public static T notNull() {
return null;
}
- /**
- * Not null argument, not necessary of the given class.
- *
- *
- * The class argument is provided to avoid casting.
- *
- * Alias to {@link ArgumentMatchers#isNotNull(Class)}
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class
- *
- *
- * @param clazz Type to avoid casting
- * @return null.
- * @see #isNotNull()
- * @see #isNull()
- * @see #isNull(Class)
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static T notNull(Class clazz) {
- return notNull();
- }
-
/**
* Not null argument.
*
@@ -1055,36 +732,12 @@ public static T notNull(Class clazz) {
*
*
* @return null.
- * @see #isNotNull(Class)
* @see #isNull()
- * @see #isNull(Class)
*/
public static T isNotNull() {
return notNull();
}
- /**
- * Not null argument, not necessary of the given class.
- *
- *
- * The class argument is provided to avoid casting.
- * Alias to {@link ArgumentMatchers#notNull(Class)}
- *
- *
- *
- * See examples in javadoc for {@link ArgumentMatchers} class
- *
- *
- * @param clazz Type to avoid casting
- * @return null.
- * @deprecated With Java 8 this method will be removed in Mockito 4.0. This method is only used for generic
- * friendliness to avoid casting, this is not anymore needed in Java 8.
- */
- @Deprecated
- public static T isNotNull(Class clazz) {
- return notNull(clazz);
- }
-
/**
* Argument that is either null or of the given type.
*
diff --git a/src/main/java/org/mockito/BDDMockito.java b/src/main/java/org/mockito/BDDMockito.java
index 1f249b4595..d37a07ae93 100644
--- a/src/main/java/org/mockito/BDDMockito.java
+++ b/src/main/java/org/mockito/BDDMockito.java
@@ -254,14 +254,6 @@ public interface Then {
*/
T should(InOrder inOrder, VerificationMode mode);
- /**
- * @see #verifyZeroInteractions(Object...)
- * @since 2.1.0
- * @deprecated Since 3.0.1. Please migrate your code to {@link #shouldHaveNoInteractions()}
- */
- @Deprecated
- void shouldHaveZeroInteractions();
-
/**
* @see #verifyNoMoreInteractions(Object...)
* @since 2.1.0
@@ -315,14 +307,6 @@ public T should(InOrder inOrder, VerificationMode mode) {
return inOrder.verify(mock, mode);
}
- /**
- * @see #verifyZeroInteractions(Object...)
- * @since 2.1.0
- */
- public void shouldHaveZeroInteractions() {
- verifyZeroInteractions(mock);
- }
-
/**
* @see #verifyNoMoreInteractions(Object...)
* @since 2.1.0
@@ -357,17 +341,6 @@ public interface BDDStubber {
*/
BDDStubber will(Answer> answer);
- /**
- * See original {@link Stubber#doNothing()}.
- *
- * This method will be removed in version 4.0.0
- *
- * @since 1.8.0
- * @deprecated as of 2.1.0 please use {@link #willDoNothing()} instead
- */
- @Deprecated
- BDDStubber willNothing();
-
/**
* See original {@link Stubber#doNothing()}
* @since 1.10.20
@@ -441,14 +414,6 @@ public BDDStubber will(Answer> answer) {
return new BDDStubberImpl(mockitoStubber.doAnswer(answer));
}
- /**
- * @deprecated please use {@link #willDoNothing()} instead
- */
- @Deprecated
- public BDDStubber willNothing() {
- return willDoNothing();
- }
-
public BDDStubber willDoNothing() {
return new BDDStubberImpl(mockitoStubber.doNothing());
}
diff --git a/src/main/java/org/mockito/Matchers.java b/src/main/java/org/mockito/Matchers.java
deleted file mode 100644
index f5e70bb658..0000000000
--- a/src/main/java/org/mockito/Matchers.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito;
-
-/**
- * @deprecated Use {@link ArgumentMatchers}. This class is now deprecated in order to avoid a name clash with Hamcrest
- * org.hamcrest.Matchers class. This class will likely be removed in version 4.0.
- */
-@Deprecated
-public class Matchers extends ArgumentMatchers {}
diff --git a/src/main/java/org/mockito/MockSettings.java b/src/main/java/org/mockito/MockSettings.java
index a1fdb508fd..c24d31ae9f 100644
--- a/src/main/java/org/mockito/MockSettings.java
+++ b/src/main/java/org/mockito/MockSettings.java
@@ -255,7 +255,6 @@ public interface MockSettings extends Serializable {
* @return settings instance so that you can fluently specify other settings
* @since 2.11.0
*/
- @Incubating
MockSettings verificationStartedListeners(VerificationStartedListener... listeners);
/**
@@ -296,7 +295,6 @@ public interface MockSettings extends Serializable {
* @return settings instance so that you can fluently specify other settings
* @since 2.7.14 (useConstructor with no arguments was supported since 1.10.12)
*/
- @Incubating
MockSettings useConstructor(Object... args);
/**
@@ -311,7 +309,6 @@ public interface MockSettings extends Serializable {
* @return settings instance so that you can fluently specify other settings
* @since 1.10.12
*/
- @Incubating
MockSettings outerInstance(Object outerClassInstance);
/**
@@ -322,7 +319,6 @@ public interface MockSettings extends Serializable {
* @return settings instance so that you can fluently specify other settings
* @since 1.10.13
*/
- @Incubating
MockSettings withoutAnnotations();
/**
@@ -337,7 +333,6 @@ public interface MockSettings extends Serializable {
* @return immutable view of mock settings
* @since 2.10.0
*/
- @Incubating
MockCreationSettings build(Class typeToMock);
/**
@@ -352,7 +347,6 @@ public interface MockSettings extends Serializable {
* @return immutable view of mock settings
* @since 2.10.0
*/
- @Incubating
MockCreationSettings buildStatic(Class classToMock);
/**
@@ -366,6 +360,5 @@ public interface MockSettings extends Serializable {
*
* For more information and an elaborate example, see {@link Mockito#lenient()}.
*/
- @Incubating
MockSettings lenient();
}
diff --git a/src/main/java/org/mockito/MockedConstruction.java b/src/main/java/org/mockito/MockedConstruction.java
index c00fb021a2..5c2ec2128d 100644
--- a/src/main/java/org/mockito/MockedConstruction.java
+++ b/src/main/java/org/mockito/MockedConstruction.java
@@ -19,7 +19,6 @@
*
* @param The type for which the construction is being mocked.
*/
-@Incubating
public interface MockedConstruction extends ScopedMock {
List constructed();
diff --git a/src/main/java/org/mockito/MockedStatic.java b/src/main/java/org/mockito/MockedStatic.java
index fbf011f7df..9095556fd7 100644
--- a/src/main/java/org/mockito/MockedStatic.java
+++ b/src/main/java/org/mockito/MockedStatic.java
@@ -23,7 +23,6 @@
*
* @param The type being mocked.
*/
-@Incubating
public interface MockedStatic extends ScopedMock {
/**
@@ -38,14 +37,6 @@ default void verify(Verification verification) {
verify(verification, times(1));
}
- /**
- * See {@link Mockito#verify(Object, VerificationMode)}.
- *
- * @deprecated Please use {@link MockedStatic#verify(Verification, VerificationMode) instead
- */
- @Deprecated
- void verify(VerificationMode mode, Verification verification);
-
/**
* See {@link Mockito#verify(Object, VerificationMode)}.
*/
diff --git a/src/main/java/org/mockito/MockingDetails.java b/src/main/java/org/mockito/MockingDetails.java
index be7dc6352a..c32e04e5c9 100644
--- a/src/main/java/org/mockito/MockingDetails.java
+++ b/src/main/java/org/mockito/MockingDetails.java
@@ -102,8 +102,6 @@ public interface MockingDetails {
* Don't write code that depends on the output of this method.
* If you need to know about interactions and stubbings, use {@link #getStubbings()} and {@link #getInvocations()}.
*
- * This method was moved from the deprecated and semi-hidden type {@link MockitoDebugger}.
- *
- * Matcher methods like anyObject(), eq()do not return matchers.
+ * Matcher methods like any(), eq()do not return matchers.
* Internally, they record a matcher on a stack and return a dummy value (usually null).
* This implementation is due to static type safety imposed by the java compiler.
- * The consequence is that you cannot use anyObject(), eq() methods outside of verified/stubbed method.
+ * The consequence is that you cannot use any(), eq() methods outside of verified/stubbed method.
*
*
*
@@ -401,9 +401,6 @@
* //verify that method was never called on a mock
* verify(mockOne, never()).add("two");
*
- * //verify that other mocks were not interacted
- * verifyZeroInteractions(mockTwo, mockThree);
- *
*
*
*
@@ -1242,7 +1239,7 @@
* as Java 8 lambdas. Even in Java 7 and lower these custom answers based on a typed interface can reduce boilerplate.
* In particular, this approach will make it easier to test functions which use callbacks.
*
- * The methods {@link AdditionalAnswers#answer(Answer1) answer} and {@link AdditionalAnswers#answerVoid(VoidAnswer1) answerVoid}
+ * The methods {@link AdditionalAnswers#answer(Answer1)}} and {@link AdditionalAnswers#answerVoid(VoidAnswer1)}
* can be used to create the answer. They rely on the related answer interfaces in {@link org.mockito.stubbing} that
* support answers up to 5 parameters.
*
@@ -1436,16 +1433,11 @@
* Provides access to invocation container object which has no methods (marker interface).
* Container is needed to hide the internal implementation and avoid leaking it to the public API.
*
- *
Changed {@link Stubbing} -
+ *
Changed {@link org.mockito.stubbing.Stubbing} -
* it now extends {@link Answer} interface.
* It is backwards compatible because Stubbing interface is not extensible (see {@link NotExtensible}).
* The change should be seamless to our users.
*
- *
Deprecated {@link InternalMockHandler} -
- * In order to accommodate API changes we needed to deprecate this interface.
- * The interface was always documented as internal, we don't have evidence it was used by the community.
- * The deprecation should be completely seamless for our users.
- *
*
{@link NotExtensible} -
* Public annotation that indicates to the user that she should not provide custom implementations of given type.
* Helps framework integrators and our users understand how to use Mockito API safely.
@@ -1505,9 +1497,9 @@
* Deprecated org.mockito.plugins.InstantiatorProvider as it was leaking internal API. it was
* replaced by org.mockito.plugins.InstantiatorProvider2 (Since 2.15.4)
*
- *
{@link org.mockito.plugins.InstantiatorProvider} returned an internal API. Hence it was deprecated and replaced
- * by {@link org.mockito.plugins.InstantiatorProvider2}. Old {@link org.mockito.plugins.InstantiatorProvider
- * instantiator providers} will continue to work, but it is recommended to switch to the new API.
+ *
org.mockito.plugins.InstantiatorProvider returned an internal API. Hence it was deprecated and replaced
+ * by {@link org.mockito.plugins.InstantiatorProvider2}. org.mockito.plugins.InstantiatorProvider
+ * has now been removed.
*
@@ -2076,7 +2068,6 @@ public static T spy(T object) {
* @return a spy of the provided class
* @since 1.10.12
*/
- @Incubating
public static T spy(Class classToSpy) {
return MOCKITO_CORE.mock(
classToSpy, withSettings().useConstructor().defaultAnswer(CALLS_REAL_METHODS));
@@ -2098,7 +2089,6 @@ public static T spy(Class classToSpy) {
* @param classToMock class or interface of which static mocks should be mocked.
* @return mock controller
*/
- @Incubating
public static MockedStatic mockStatic(Class classToMock) {
return mockStatic(classToMock, withSettings());
}
@@ -2120,7 +2110,6 @@ public static MockedStatic mockStatic(Class classToMock) {
* @param defaultAnswer the default answer when invoking static methods.
* @return mock controller
*/
- @Incubating
public static MockedStatic mockStatic(Class classToMock, Answer defaultAnswer) {
return mockStatic(classToMock, withSettings().defaultAnswer(defaultAnswer));
}
@@ -2142,7 +2131,6 @@ public static MockedStatic mockStatic(Class classToMock, Answer defaul
* @param name the name of the mock to use in error messages.
* @return mock controller
*/
- @Incubating
public static MockedStatic mockStatic(Class classToMock, String name) {
return mockStatic(classToMock, withSettings().name(name));
}
@@ -2164,7 +2152,6 @@ public static MockedStatic mockStatic(Class classToMock, String name)
* @param mockSettings the settings to use where only name and default answer are considered.
* @return mock controller
*/
- @Incubating
public static MockedStatic mockStatic(Class classToMock, MockSettings mockSettings) {
return MOCKITO_CORE.mockStatic(classToMock, mockSettings);
}
@@ -2182,7 +2169,6 @@ public static MockedStatic mockStatic(Class classToMock, MockSettings
* last answer is used. If this array is empty, the {@code defaultAnswer} is used.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstructionWithAnswer(
Class classToMock, Answer defaultAnswer, Answer... additionalAnswers) {
return mockConstruction(
@@ -2211,7 +2197,6 @@ public static MockedConstruction mockConstructionWithAnswer(
* @param classToMock non-abstract class of which constructions should be mocked.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(Class classToMock) {
return mockConstruction(classToMock, index -> withSettings(), (mock, context) -> {});
}
@@ -2227,7 +2212,6 @@ public static MockedConstruction mockConstruction(Class classToMock) {
* @param mockInitializer a callback to prepare a mock's methods after its instantiation.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(
Class classToMock, MockedConstruction.MockInitializer mockInitializer) {
return mockConstruction(classToMock, withSettings(), mockInitializer);
@@ -2244,7 +2228,6 @@ public static MockedConstruction mockConstruction(
* @param mockSettings the mock settings to use.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(
Class classToMock, MockSettings mockSettings) {
return mockConstruction(classToMock, context -> mockSettings);
@@ -2261,7 +2244,6 @@ public static MockedConstruction mockConstruction(
* @param mockSettingsFactory the mock settings to use.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(
Class classToMock,
Function mockSettingsFactory) {
@@ -2280,7 +2262,6 @@ public static MockedConstruction mockConstruction(
* @param mockInitializer a callback to prepare a mock's methods after its instantiation.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(
Class classToMock,
MockSettings mockSettings,
@@ -2300,7 +2281,6 @@ public static MockedConstruction mockConstruction(
* @param mockInitializer a callback to prepare a mock's methods after its instantiation.
* @return mock controller
*/
- @Incubating
public static MockedConstruction mockConstruction(
Class classToMock,
Function mockSettingsFactory,
@@ -2531,18 +2511,6 @@ public static void verifyNoMoreInteractions(Object... mocks) {
MOCKITO_CORE.verifyNoMoreInteractions(mocks);
}
- /**
- * Verifies that no interactions happened on given mocks beyond the previously verified interactions.
- * This method has the same behavior as {@link #verifyNoMoreInteractions(Object...)}.
- *
- * @param mocks to be verified
- * @deprecated Since 3.0.1. Please migrate your code to {@link #verifyNoInteractions(Object...)}
- */
- @Deprecated
- public static void verifyZeroInteractions(Object... mocks) {
- MOCKITO_CORE.verifyNoMoreInteractions(mocks);
- }
-
/**
* Verifies that no interactions happened on given mocks.
*
* If you want to verify there were NO interactions with the mock
- * check out {@link Mockito#verifyZeroInteractions(Object...)}
- * or {@link Mockito#verifyNoMoreInteractions(Object...)}
+ * check out {@link Mockito#verifyNoMoreInteractions(Object...)}
*
* See examples in javadoc for {@link Mockito} class
*
@@ -3273,21 +3240,11 @@ public static VerificationMode description(String description) {
return times(1).description(description);
}
- /**
- * @deprecated - please use {@link MockingDetails#printInvocations()} instead.
- * An instance of {@code MockingDetails} can be retrieved via {@link #mockingDetails(Object)}.
- */
- @Deprecated
- static MockitoDebugger debug() {
- return new MockitoDebuggerImpl();
- }
-
/**
* For advanced users or framework integrators. See {@link MockitoFramework} class.
*
* @since 2.1.0
*/
- @Incubating
public static MockitoFramework framework() {
return new DefaultMockitoFramework();
}
@@ -3300,7 +3257,6 @@ public static MockitoFramework framework() {
*
* @since 2.7.0
*/
- @Incubating
public static MockitoSessionBuilder mockitoSession() {
return new DefaultMockitoSessionBuilder();
}
@@ -3368,7 +3324,6 @@ public static MockitoSessionBuilder mockitoSession() {
*
* @since 2.20.0
*/
- @Incubating
public static LenientStubber lenient() {
return MOCKITO_CORE.lenient();
}
diff --git a/src/main/java/org/mockito/MockitoDebugger.java b/src/main/java/org/mockito/MockitoDebugger.java
deleted file mode 100644
index 7ee2229969..0000000000
--- a/src/main/java/org/mockito/MockitoDebugger.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito;
-
-/**
- * @deprecated - please use {@link MockingDetails#printInvocations()} instead.
- * An instance of {@code MockingDetails} can be retrieved via {@link Mockito#mockingDetails(Object)}.
- */
-@Deprecated
-public interface MockitoDebugger {
-
- /**
- * @deprecated - please use {@link MockingDetails#printInvocations()} instead.
- * An instance of {@code MockingDetails} can be retrieved via {@link Mockito#mockingDetails(Object)}.
- */
- @Deprecated
- String printInvocations(Object... mocks);
-}
diff --git a/src/main/java/org/mockito/MockitoFramework.java b/src/main/java/org/mockito/MockitoFramework.java
index da03ef4d80..c3d590ceb7 100644
--- a/src/main/java/org/mockito/MockitoFramework.java
+++ b/src/main/java/org/mockito/MockitoFramework.java
@@ -19,7 +19,6 @@
*
* @since 2.1.0
*/
-@Incubating
@NotExtensible
public interface MockitoFramework {
@@ -53,7 +52,6 @@ public interface MockitoFramework {
* @return this instance of mockito framework (fluent builder pattern)
* @since 2.1.0
*/
- @Incubating
MockitoFramework addListener(MockitoListener listener) throws RedundantListenerException;
/**
@@ -70,7 +68,6 @@ public interface MockitoFramework {
* @return this instance of mockito framework (fluent builder pattern)
* @since 2.1.0
*/
- @Incubating
MockitoFramework removeListener(MockitoListener listener);
/**
@@ -81,7 +78,6 @@ public interface MockitoFramework {
* @return object that gives access to mockito plugins
* @since 2.10.0
*/
- @Incubating
MockitoPlugins getPlugins();
/**
@@ -91,7 +87,6 @@ public interface MockitoFramework {
* @return object that can construct invocations
* @since 2.10.0
*/
- @Incubating
InvocationFactory getInvocationFactory();
/**
@@ -130,7 +125,6 @@ public interface MockitoFramework {
* @since 2.25.0
* @see #clearInlineMock(Object)
*/
- @Incubating
void clearInlineMocks();
/**
@@ -142,6 +136,5 @@ public interface MockitoFramework {
* @since 2.25.0
* @see #clearInlineMocks()
*/
- @Incubating
void clearInlineMock(Object mock);
}
diff --git a/src/main/java/org/mockito/MockitoSession.java b/src/main/java/org/mockito/MockitoSession.java
index c7989be1fc..4afa24341a 100644
--- a/src/main/java/org/mockito/MockitoSession.java
+++ b/src/main/java/org/mockito/MockitoSession.java
@@ -86,7 +86,6 @@
*
* @since 2.7.0
*/
-@Incubating
@NotExtensible
public interface MockitoSession {
@@ -101,7 +100,6 @@ public interface MockitoSession {
* @param strictness new strictness for this session.
* @since 2.15.0
*/
- @Incubating
void setStrictness(Strictness strictness);
/**
@@ -123,7 +121,6 @@ public interface MockitoSession {
* @see #finishMocking(Throwable)
* @since 2.7.0
*/
- @Incubating
void finishMocking();
/**
@@ -140,6 +137,5 @@ public interface MockitoSession {
* @see #finishMocking()
* @since 2.15.0
*/
- @Incubating
void finishMocking(Throwable failure);
}
diff --git a/src/main/java/org/mockito/ScopedMock.java b/src/main/java/org/mockito/ScopedMock.java
index 3ef0d9b3d3..ab2b94c76d 100644
--- a/src/main/java/org/mockito/ScopedMock.java
+++ b/src/main/java/org/mockito/ScopedMock.java
@@ -8,7 +8,6 @@
* Represents a mock with a thread-local explicit scope. Scoped mocks must be closed by the entity
* that activates the scoped mock.
*/
-@Incubating
public interface ScopedMock extends AutoCloseable {
/**
diff --git a/src/main/java/org/mockito/configuration/AnnotationEngine.java b/src/main/java/org/mockito/configuration/AnnotationEngine.java
deleted file mode 100644
index 897878169a..0000000000
--- a/src/main/java/org/mockito/configuration/AnnotationEngine.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.configuration;
-
-import org.mockito.MockitoAnnotations;
-
-/**
- * Configures mock creation logic behind @Mock, @Captor and @Spy annotations
- *
- * If you are interested then see implementations or source code of {@link MockitoAnnotations#openMocks(Object)}
- *
- *
This interface can be used to configure a different annotation engine through
- * {@link org.mockito.configuration.IMockitoConfiguration}, however this mechanism is being superseded by the new
- * {@link org.mockito.plugins plugin} system.
- *
- *
- * Note that if it exists on the classpath both a class org.mockito.configuration.MockitoConfiguration
- * and a file mockito-extensions/org.mockito.plugins.AnnotationEngine then the implementation of
- * org.mockito.configuration.MockitoConfiguration will be chosen instead of the one in the file.
- *
- * @deprecated Please use {@link org.mockito.plugins.AnnotationEngine} instead,
- * this interface will probably be removed in mockito 4.
- */
-@Deprecated
-public interface AnnotationEngine extends org.mockito.plugins.AnnotationEngine {}
diff --git a/src/main/java/org/mockito/configuration/DefaultMockitoConfiguration.java b/src/main/java/org/mockito/configuration/DefaultMockitoConfiguration.java
index 2d749c2fbc..43882d49f1 100644
--- a/src/main/java/org/mockito/configuration/DefaultMockitoConfiguration.java
+++ b/src/main/java/org/mockito/configuration/DefaultMockitoConfiguration.java
@@ -4,7 +4,6 @@
*/
package org.mockito.configuration;
-import org.mockito.internal.configuration.InjectingAnnotationEngine;
import org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValues;
import org.mockito.stubbing.Answer;
@@ -22,13 +21,6 @@ public Answer getDefaultAnswer() {
return new ReturnsEmptyValues();
}
- /* (non-Javadoc)
- * @see org.mockito.IMockitoConfiguration#getAnnotationEngine()
- */
- public AnnotationEngine getAnnotationEngine() {
- return new InjectingAnnotationEngine();
- }
-
/* (non-Javadoc)
* @see org.mockito.configuration.IMockitoConfiguration#cleansStackTrace()
*/
diff --git a/src/main/java/org/mockito/configuration/IMockitoConfiguration.java b/src/main/java/org/mockito/configuration/IMockitoConfiguration.java
index f9690dec3d..53664940ea 100644
--- a/src/main/java/org/mockito/configuration/IMockitoConfiguration.java
+++ b/src/main/java/org/mockito/configuration/IMockitoConfiguration.java
@@ -44,24 +44,6 @@ public interface IMockitoConfiguration {
*/
Answer getDefaultAnswer();
- /**
- * Configures annotations for mocks.
- *
- *
- * This method will have lower priority that the new extension mechanism.
- * That is if it exists on the classpath both a class org.mockito.configuration.MockitoConfiguration
- * and a file mockito-extensions/org.mockito.plugins.AnnotationEngine then the implementation of
- * org.mockito.configuration.MockitoConfiguration will be chosen instead of the one in the file.
- *
- *
- * See javadoc for {@link IMockitoConfiguration}
- *
- * @deprecated Please use the extension mechanism {@link org.mockito.plugins.AnnotationEngine} instead,
- * this method will probably be removed in mockito 4.
- */
- @Deprecated
- AnnotationEngine getAnnotationEngine();
-
/**
* This should be turned on unless you're a Mockito developer and you wish
* to have verbose (read: messy) stack traces that only few understand (eg:
diff --git a/src/main/java/org/mockito/exceptions/verification/TooFewActualInvocations.java b/src/main/java/org/mockito/exceptions/verification/TooFewActualInvocations.java
index 5ffbb2f83b..bf7c01851d 100644
--- a/src/main/java/org/mockito/exceptions/verification/TooFewActualInvocations.java
+++ b/src/main/java/org/mockito/exceptions/verification/TooFewActualInvocations.java
@@ -4,10 +4,12 @@
*/
package org.mockito.exceptions.verification;
+import org.mockito.exceptions.base.MockitoAssertionError;
+
/**
* @since 2.27.5
*/
-public class TooFewActualInvocations extends TooLittleActualInvocations {
+public class TooFewActualInvocations extends MockitoAssertionError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/mockito/exceptions/verification/TooLittleActualInvocations.java b/src/main/java/org/mockito/exceptions/verification/TooLittleActualInvocations.java
deleted file mode 100644
index 39bd30f82c..0000000000
--- a/src/main/java/org/mockito/exceptions/verification/TooLittleActualInvocations.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.exceptions.verification;
-
-import org.mockito.exceptions.base.MockitoAssertionError;
-
-/**
- * @deprecated as of 2.27.5. Please use {@link TooFewActualInvocations} instead.
- * @see TooFewActualInvocations
- */
-@Deprecated
-public class TooLittleActualInvocations extends MockitoAssertionError {
-
- private static final long serialVersionUID = 1L;
-
- public TooLittleActualInvocations(String message) {
- super(message);
- }
-}
diff --git a/src/main/java/org/mockito/internal/InternalMockHandler.java b/src/main/java/org/mockito/internal/InternalMockHandler.java
deleted file mode 100644
index 2fd95498ef..0000000000
--- a/src/main/java/org/mockito/internal/InternalMockHandler.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal;
-
-import org.mockito.invocation.MockHandler;
-
-/**
- * Deprecated, please use {@link MockHandler}.
- *
- * This class was changed in Mockito in order to tidy up Mockito API
- * and make it easier for other frameworks to integrate with Mockito.
- * Since this class is internal, e.g. it resides in "org.mockito.internal" package,
- * Mockito team can change it without the need for major version release of Mockito.
- *
- * This interface was deprecated in Mockito 2.10.0 and will be deleted in Mockito 4.0.
- */
-@Deprecated
-public interface InternalMockHandler extends MockHandler {}
diff --git a/src/main/java/org/mockito/internal/MockedStaticImpl.java b/src/main/java/org/mockito/internal/MockedStaticImpl.java
index 2b7ca0ac15..fb6c16010a 100644
--- a/src/main/java/org/mockito/internal/MockedStaticImpl.java
+++ b/src/main/java/org/mockito/internal/MockedStaticImpl.java
@@ -61,11 +61,6 @@ public OngoingStubbing when(Verification verification) {
return stubbing;
}
- @Override
- public void verify(VerificationMode mode, Verification verification) {
- verify(verification, mode);
- }
-
@Override
public void verify(Verification verification, VerificationMode mode) {
assertNotClosed();
diff --git a/src/main/java/org/mockito/internal/configuration/GlobalConfiguration.java b/src/main/java/org/mockito/internal/configuration/GlobalConfiguration.java
index 8f8e037c3b..92f5a54eb4 100644
--- a/src/main/java/org/mockito/internal/configuration/GlobalConfiguration.java
+++ b/src/main/java/org/mockito/internal/configuration/GlobalConfiguration.java
@@ -6,7 +6,6 @@
import java.io.Serializable;
-import org.mockito.configuration.AnnotationEngine;
import org.mockito.configuration.DefaultMockitoConfiguration;
import org.mockito.configuration.IMockitoConfiguration;
import org.mockito.internal.configuration.plugins.Plugins;
@@ -47,16 +46,8 @@ public static void validate() {
new GlobalConfiguration();
}
- public AnnotationEngine getAnnotationEngine() {
- return GLOBAL_CONFIGURATION.get().getAnnotationEngine();
- }
-
public org.mockito.plugins.AnnotationEngine tryGetPluginAnnotationEngine() {
- IMockitoConfiguration configuration = GLOBAL_CONFIGURATION.get();
- if (configuration.getClass() == DefaultMockitoConfiguration.class) {
- return Plugins.getAnnotationEngine();
- }
- return configuration.getAnnotationEngine();
+ return Plugins.getAnnotationEngine();
}
@Override
diff --git a/src/main/java/org/mockito/internal/configuration/IndependentAnnotationEngine.java b/src/main/java/org/mockito/internal/configuration/IndependentAnnotationEngine.java
index 06f2d29559..a7950da9f9 100644
--- a/src/main/java/org/mockito/internal/configuration/IndependentAnnotationEngine.java
+++ b/src/main/java/org/mockito/internal/configuration/IndependentAnnotationEngine.java
@@ -31,8 +31,7 @@
* @see MockitoAnnotations
*/
@SuppressWarnings("unchecked")
-public class IndependentAnnotationEngine
- implements AnnotationEngine, org.mockito.configuration.AnnotationEngine {
+public class IndependentAnnotationEngine implements AnnotationEngine {
private final Map, FieldAnnotationProcessor>>
annotationProcessorMap = new HashMap<>();
diff --git a/src/main/java/org/mockito/internal/configuration/InjectingAnnotationEngine.java b/src/main/java/org/mockito/internal/configuration/InjectingAnnotationEngine.java
index 513d7c9052..ef9933d9d6 100644
--- a/src/main/java/org/mockito/internal/configuration/InjectingAnnotationEngine.java
+++ b/src/main/java/org/mockito/internal/configuration/InjectingAnnotationEngine.java
@@ -21,8 +21,7 @@
/**
* See {@link MockitoAnnotations}
*/
-public class InjectingAnnotationEngine
- implements AnnotationEngine, org.mockito.configuration.AnnotationEngine {
+public class InjectingAnnotationEngine implements AnnotationEngine {
private final AnnotationEngine delegate = new IndependentAnnotationEngine();
private final AnnotationEngine spyAnnotationEngine = new SpyAnnotationEngine();
diff --git a/src/main/java/org/mockito/internal/configuration/SpyAnnotationEngine.java b/src/main/java/org/mockito/internal/configuration/SpyAnnotationEngine.java
index 254031132d..a88ad63b84 100644
--- a/src/main/java/org/mockito/internal/configuration/SpyAnnotationEngine.java
+++ b/src/main/java/org/mockito/internal/configuration/SpyAnnotationEngine.java
@@ -46,8 +46,7 @@
*
This engine will fail, if the field is also annotated with incompatible Mockito annotations.
*/
@SuppressWarnings({"unchecked"})
-public class SpyAnnotationEngine
- implements AnnotationEngine, org.mockito.configuration.AnnotationEngine {
+public class SpyAnnotationEngine implements AnnotationEngine {
@Override
public AutoCloseable process(Class> context, Object testInstance) {
diff --git a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java
index 559a90d592..254ef2dd44 100644
--- a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java
+++ b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java
@@ -6,9 +6,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.mockito.internal.creation.instance.InstantiatorProvider2Adapter;
import org.mockito.plugins.AnnotationEngine;
-import org.mockito.plugins.InstantiatorProvider;
import org.mockito.plugins.InstantiatorProvider2;
import org.mockito.plugins.MemberAccessor;
import org.mockito.plugins.MockMaker;
@@ -53,18 +51,8 @@ class DefaultMockitoPlugins implements MockitoPlugins {
@Override
public T getDefaultPlugin(Class pluginType) {
- if (pluginType == InstantiatorProvider.class) {
- // the implementation class is not configured via map so that we can reduce duplication
- // (ensure that we are adapting the currently configured default implementation for
- // InstantiatorProvider2)
- String className = DEFAULT_PLUGINS.get(InstantiatorProvider2.class.getName());
- return pluginType.cast(
- new InstantiatorProvider2Adapter(
- create(InstantiatorProvider2.class, className)));
- } else {
- String className = DEFAULT_PLUGINS.get(pluginType.getName());
- return create(pluginType, className);
- }
+ String className = DEFAULT_PLUGINS.get(pluginType.getName());
+ return create(pluginType, className);
}
String getDefaultPluginClass(String classOrAlias) {
diff --git a/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java b/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java
index 3bec0bf13b..b912dcf8ff 100644
--- a/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java
+++ b/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java
@@ -5,9 +5,7 @@
package org.mockito.internal.configuration.plugins;
import java.util.List;
-import org.mockito.internal.creation.instance.InstantiatorProviderAdapter;
import org.mockito.plugins.AnnotationEngine;
-import org.mockito.plugins.InstantiatorProvider;
import org.mockito.plugins.InstantiatorProvider2;
import org.mockito.plugins.MemberAccessor;
import org.mockito.plugins.MockMaker;
@@ -47,14 +45,8 @@ class PluginRegistry {
new PluginLoader(pluginSwitch).loadPlugins(MockResolver.class);
PluginRegistry() {
- Object impl =
- new PluginLoader(pluginSwitch)
- .loadPlugin(InstantiatorProvider2.class, InstantiatorProvider.class);
- if (impl instanceof InstantiatorProvider) {
- instantiatorProvider = new InstantiatorProviderAdapter((InstantiatorProvider) impl);
- } else {
- instantiatorProvider = (InstantiatorProvider2) impl;
- }
+ instantiatorProvider =
+ new PluginLoader(pluginSwitch).loadPlugin(InstantiatorProvider2.class);
}
/**
diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyCrossClassLoaderSerializationSupport.java b/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyCrossClassLoaderSerializationSupport.java
index 41efec416b..02e8961385 100644
--- a/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyCrossClassLoaderSerializationSupport.java
+++ b/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyCrossClassLoaderSerializationSupport.java
@@ -21,7 +21,6 @@
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
-import org.mockito.Incubating;
import org.mockito.exceptions.base.MockitoSerializationIssue;
import org.mockito.internal.configuration.plugins.Plugins;
import org.mockito.internal.creation.settings.CreationSettings;
@@ -58,7 +57,6 @@
* @author Brice Dutheil
* @since 1.10.0
*/
-@Incubating
class ByteBuddyCrossClassLoaderSerializationSupport implements Serializable {
private static final long serialVersionUID = 7411152578314420778L;
private static final String MOCKITO_PROXY_MARKER = "ByteBuddyMockitoProxyMarker";
diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyMockMaker.java b/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyMockMaker.java
index 35c379c4a6..f6cba2946b 100644
--- a/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyMockMaker.java
+++ b/src/main/java/org/mockito/internal/creation/bytebuddy/ByteBuddyMockMaker.java
@@ -4,7 +4,6 @@
*/
package org.mockito.internal.creation.bytebuddy;
-import org.mockito.Incubating;
import org.mockito.MockedConstruction;
import org.mockito.internal.exceptions.Reporter;
import org.mockito.invocation.MockHandler;
@@ -65,7 +64,6 @@ public void resetMock(Object mock, MockHandler newHandler, MockCreationSettings
}
@Override
- @Incubating
public TypeMockability isTypeMockable(Class> type) {
return subclassByteBuddyMockMaker.isTypeMockable(type);
}
diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java
index 92593ded9f..acfddfef34 100644
--- a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java
+++ b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java
@@ -4,7 +4,6 @@
*/
package org.mockito.internal.creation.bytebuddy;
-import org.mockito.Incubating;
import org.mockito.MockedConstruction;
import org.mockito.creation.instance.Instantiator;
import org.mockito.internal.exceptions.Reporter;
@@ -15,7 +14,6 @@
import java.util.Optional;
import java.util.function.Function;
-@Incubating
public class InlineByteBuddyMockMaker
implements ClassCreatingMockMaker, InlineMockMaker, Instantiator {
private final InlineDelegateByteBuddyMockMaker inlineDelegateByteBuddyMockMaker;
diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineDelegateByteBuddyMockMaker.java b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineDelegateByteBuddyMockMaker.java
index 7178927cd9..9da65605a5 100644
--- a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineDelegateByteBuddyMockMaker.java
+++ b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineDelegateByteBuddyMockMaker.java
@@ -5,7 +5,6 @@
package org.mockito.internal.creation.bytebuddy;
import net.bytebuddy.agent.ByteBuddyAgent;
-import org.mockito.Incubating;
import org.mockito.MockedConstruction;
import org.mockito.creation.instance.InstantiationException;
import org.mockito.creation.instance.Instantiator;
@@ -100,7 +99,6 @@
* (also known as HotSwap). All major VM distributions such as HotSpot (OpenJDK), J9 (IBM/Websphere) or Zing (Azul)
* support this feature.
*/
-@Incubating
@SuppressSignatureCheck
class InlineDelegateByteBuddyMockMaker
implements ClassCreatingMockMaker, InlineMockMaker, Instantiator {
diff --git a/src/main/java/org/mockito/internal/creation/instance/InstantiationException.java b/src/main/java/org/mockito/internal/creation/instance/InstantiationException.java
deleted file mode 100644
index 86b54630af..0000000000
--- a/src/main/java/org/mockito/internal/creation/instance/InstantiationException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2016 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.creation.instance;
-
-import org.mockito.exceptions.base.MockitoException;
-
-/**
- * @deprecated since 2.15.4 because this internal class was leaking from the public API.
- * For information why deprecated, see {@link org.mockito.plugins.InstantiatorProvider2}.
- * Use {@link org.mockito.creation.instance.Instantiator} and {@link org.mockito.creation.instance.InstantiationException} types instead.
- *
- * Exception generated when {@link Instantiator#newInstance(Class)} failed.
- */
-@Deprecated
-public class InstantiationException extends MockitoException {
-
- public InstantiationException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/src/main/java/org/mockito/internal/creation/instance/Instantiator.java b/src/main/java/org/mockito/internal/creation/instance/Instantiator.java
deleted file mode 100644
index 3760124e1f..0000000000
--- a/src/main/java/org/mockito/internal/creation/instance/Instantiator.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2016 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.creation.instance;
-
-/**
- * @deprecated since 2.15.4 because this internal class was leaking from the public API.
- * For more information why deprecated, see {@link org.mockito.plugins.InstantiatorProvider2}.
- * Use {@link org.mockito.creation.instance.Instantiator} instead.
- *
- * Provides instances of classes.
- */
-@Deprecated
-public interface Instantiator {
-
- /** Creates instance of given class */
- T newInstance(Class cls);
-}
diff --git a/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java b/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java
deleted file mode 100644
index de764d77a6..0000000000
--- a/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2018 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.creation.instance;
-
-import org.mockito.mock.MockCreationSettings;
-import org.mockito.plugins.InstantiatorProvider;
-import org.mockito.plugins.InstantiatorProvider2;
-
-/**
- * Adapts new public API {@link InstantiatorProvider2} onto old, deprecated API {@link InstantiatorProvider}
- */
-public class InstantiatorProvider2Adapter implements InstantiatorProvider {
- private final InstantiatorProvider2 provider;
-
- public InstantiatorProvider2Adapter(InstantiatorProvider2 provider) {
- this.provider = provider;
- }
-
- @Override
- public Instantiator getInstantiator(final MockCreationSettings> settings) {
- return new Instantiator() {
- @Override
- public T newInstance(Class cls) {
- try {
- return provider.getInstantiator(settings).newInstance(cls);
- } catch (org.mockito.creation.instance.InstantiationException e) {
- throw new InstantiationException(e.getMessage(), e.getCause());
- }
- }
- };
- }
-}
diff --git a/src/main/java/org/mockito/internal/creation/instance/InstantiatorProviderAdapter.java b/src/main/java/org/mockito/internal/creation/instance/InstantiatorProviderAdapter.java
deleted file mode 100644
index 62e98ab2b9..0000000000
--- a/src/main/java/org/mockito/internal/creation/instance/InstantiatorProviderAdapter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2018 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.creation.instance;
-
-import org.mockito.creation.instance.InstantiationException;
-import org.mockito.creation.instance.Instantiator;
-import org.mockito.mock.MockCreationSettings;
-import org.mockito.plugins.InstantiatorProvider;
-import org.mockito.plugins.InstantiatorProvider2;
-
-/**
- * Adapts old, deprecated {@link InstantiatorProvider} onto a new public {@link InstantiatorProvider2} API.
- */
-public class InstantiatorProviderAdapter implements InstantiatorProvider2 {
- private final InstantiatorProvider provider;
-
- public InstantiatorProviderAdapter(InstantiatorProvider provider) {
- this.provider = provider;
- }
-
- @Override
- public Instantiator getInstantiator(final MockCreationSettings> settings) {
- return new Instantiator() {
- @Override
- public T newInstance(Class cls) {
- try {
- return provider.getInstantiator(settings).newInstance(cls);
- } catch (org.mockito.internal.creation.instance.InstantiationException e) {
- throw new InstantiationException(e.getMessage(), e.getCause());
- }
- }
- };
- }
-}
diff --git a/src/main/java/org/mockito/internal/creation/proxy/InvokeDefaultProxy.java b/src/main/java/org/mockito/internal/creation/proxy/InvokeDefaultProxy.java
new file mode 100644
index 0000000000..41f808ad79
--- /dev/null
+++ b/src/main/java/org/mockito/internal/creation/proxy/InvokeDefaultProxy.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2021 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockito.internal.creation.proxy;
+
+import org.mockito.exceptions.base.MockitoException;
+import org.mockito.internal.invocation.RealMethod;
+import org.mockito.internal.invocation.SerializableMethod;
+import org.mockito.internal.util.Platform;
+
+import java.io.Serializable;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import static org.mockito.internal.util.StringUtil.join;
+
+class InvokeDefaultProxy implements ProxyRealMethod {
+
+ private final Method invokeDefault;
+
+ InvokeDefaultProxy() throws Throwable {
+ invokeDefault =
+ InvocationHandler.class.getMethod(
+ "invokeDefault", Object.class, Method.class, Object[].class);
+ }
+
+ @Override
+ public RealMethod resolve(Object proxy, Method method, Object[] args) {
+ return new InvokeDefaultRealMethod(proxy, method, args);
+ }
+
+ private class InvokeDefaultRealMethod implements RealMethod, Serializable {
+
+ private static final long serialVersionUID = -1;
+
+ private final Object proxy;
+ private final SerializableMethod serializableMethod;
+ private final Object[] args;
+
+ private InvokeDefaultRealMethod(Object proxy, Method method, Object[] args) {
+ this.proxy = proxy;
+ this.serializableMethod = new SerializableMethod(method);
+ this.args = args;
+ }
+
+ @Override
+ public boolean isInvokable() {
+ return true;
+ }
+
+ @Override
+ public Object invoke() throws Throwable {
+ try {
+ return invokeDefault.invoke(null, proxy, serializableMethod.getJavaMethod(), args);
+ } catch (InvocationTargetException e) {
+ throw e.getTargetException();
+ } catch (IllegalAccessException | IllegalArgumentException e) {
+ throw new MockitoException(
+ join(
+ "Failed to access default method or invoked method with illegal arguments",
+ "",
+ "Method "
+ + serializableMethod.getJavaMethod()
+ + " could not be delegated, this is not supposed to happen",
+ Platform.describe()),
+ e);
+ }
+ }
+ }
+}
diff --git a/src/main/java/org/mockito/internal/creation/proxy/MethodHandleProxy.java b/src/main/java/org/mockito/internal/creation/proxy/MethodHandleProxy.java
new file mode 100644
index 0000000000..068f7233a5
--- /dev/null
+++ b/src/main/java/org/mockito/internal/creation/proxy/MethodHandleProxy.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2021 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockito.internal.creation.proxy;
+
+import org.mockito.internal.SuppressSignatureCheck;
+import org.mockito.internal.invocation.RealMethod;
+
+import java.io.Serializable;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+
+@SuppressSignatureCheck
+class MethodHandleProxy implements ProxyRealMethod {
+
+ private final MethodHandles.Lookup lookup;
+
+ MethodHandleProxy() throws Throwable {
+ lookup = MethodHandles.lookup();
+ }
+
+ @Override
+ public RealMethod resolve(Object proxy, Method method, Object[] args) {
+ try {
+ return new MethodHandleRealMethod(
+ lookup.findSpecial(
+ method.getDeclaringClass(),
+ method.getName(),
+ MethodType.methodType(
+ method.getReturnType(), method.getParameterTypes()),
+ method.getDeclaringClass())
+ .bindTo(proxy),
+ args);
+ } catch (Throwable ignored) {
+ return RealMethod.IsIllegal.INSTANCE;
+ }
+ }
+
+ @SuppressSignatureCheck
+ static class LegacyVersion implements ProxyRealMethod {
+
+ private final Constructor constructor;
+
+ LegacyVersion() throws Throwable {
+ try {
+ Class.forName("java.lang.Module");
+ throw new RuntimeException("Must not be used when modules are available");
+ } catch (ClassNotFoundException ignored) {
+ }
+ constructor = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class);
+ constructor.setAccessible(true);
+ }
+
+ @Override
+ public RealMethod resolve(Object proxy, Method method, Object[] args) {
+ try {
+ return new MethodHandleRealMethod(
+ constructor
+ .newInstance(method.getDeclaringClass())
+ .in(method.getDeclaringClass())
+ .unreflectSpecial(method, method.getDeclaringClass())
+ .bindTo(proxy),
+ args);
+ } catch (Throwable ignored) {
+ return RealMethod.IsIllegal.INSTANCE;
+ }
+ }
+ }
+
+ @SuppressSignatureCheck
+ private static class MethodHandleRealMethod implements RealMethod, Serializable {
+
+ private static final long serialVersionUID = -1;
+
+ private final MethodHandle handle;
+ private final Object[] args;
+
+ private MethodHandleRealMethod(MethodHandle handle, Object[] args) {
+ this.handle = handle;
+ this.args = args;
+ }
+
+ @Override
+ public boolean isInvokable() {
+ return true;
+ }
+
+ @Override
+ public Object invoke() throws Throwable {
+ return handle.invokeWithArguments(args);
+ }
+ }
+}
diff --git a/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java b/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java
index 96770d34a7..faa97e849b 100644
--- a/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java
+++ b/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java
@@ -7,13 +7,15 @@
import org.mockito.exceptions.base.MockitoException;
import org.mockito.internal.debugging.LocationImpl;
import org.mockito.internal.invocation.RealMethod;
-import org.mockito.internal.invocation.SerializableMethod;
import org.mockito.internal.util.Platform;
import org.mockito.invocation.MockHandler;
import org.mockito.mock.MockCreationSettings;
import org.mockito.plugins.MockMaker;
-import java.lang.reflect.*;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
import java.util.concurrent.atomic.AtomicReference;
import static org.mockito.internal.invocation.DefaultInvocationFactory.createInvocation;
@@ -27,36 +29,53 @@ public class ProxyMockMaker implements MockMaker {
private static final Object[] EMPTY = new Object[0];
- private final Method invokeDefault;
-
- public ProxyMockMaker() {
- Method m;
- try {
- m =
- InvocationHandler.class.getMethod(
- "invokeDefault", Object.class, Method.class, Object[].class);
- } catch (NoSuchMethodException ignored) {
- m = null;
- }
- invokeDefault = m;
- }
+ private final ProxyRealMethod proxyRealMethod = ProxyRealMethod.make();
@Override
@SuppressWarnings("unchecked")
public T createMock(MockCreationSettings settings, MockHandler handler) {
- Class>[] ifaces = new Class>[settings.getExtraInterfaces().size() + 1];
- ifaces[0] = settings.getTypeToMock();
- int index = 1;
+ boolean object = settings.getTypeToMock() == Object.class;
+ Class>[] ifaces = new Class>[settings.getExtraInterfaces().size() + (object ? 0 : 1)];
+ int index = 0;
+ if (!object) {
+ ifaces[index++] = settings.getTypeToMock();
+ }
+ ClassLoader classLoader = settings.getTypeToMock().getClassLoader();
for (Class> iface : settings.getExtraInterfaces()) {
ifaces[index++] = iface;
+ classLoader = resolveCommonClassLoader(classLoader, iface);
}
return (T)
Proxy.newProxyInstance(
- settings.getTypeToMock().getClassLoader(),
+ resolveCommonClassLoader(classLoader, ProxyMockMaker.class),
ifaces,
new MockInvocationHandler(handler, settings));
}
+ private static ClassLoader resolveCommonClassLoader(ClassLoader mostSpecific, Class> type) {
+ if (mostSpecific == null) {
+ return type.getClassLoader();
+ }
+ ClassLoader candidate = type.getClassLoader();
+ if (candidate == null || mostSpecific == candidate) {
+ return mostSpecific;
+ }
+ while (candidate != null) {
+ if (candidate == mostSpecific) {
+ return type.getClassLoader();
+ }
+ candidate = candidate.getParent();
+ }
+ candidate = mostSpecific;
+ while (candidate != null) {
+ if (candidate == type.getClassLoader()) {
+ return mostSpecific;
+ }
+ candidate = candidate.getParent();
+ }
+ return new CommonClassLoader(mostSpecific, type.getClassLoader());
+ }
+
@Override
public MockHandler getHandler(Object mock) {
if (!Proxy.isProxyClass(mock.getClass())) {
@@ -79,7 +98,7 @@ public TypeMockability isTypeMockable(Class> type) {
return new TypeMockability() {
@Override
public boolean mockable() {
- return type.isInterface();
+ return type.isInterface() || type == Object.class;
}
@Override
@@ -126,10 +145,10 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
}
}
RealMethod realMethod;
- if (invokeDefault == null || Modifier.isAbstract(method.getModifiers())) {
+ if (Modifier.isAbstract(method.getModifiers())) {
realMethod = RealMethod.IsIllegal.INSTANCE;
} else {
- realMethod = new RealDefaultMethod(proxy, method, args);
+ realMethod = proxyRealMethod.resolve(proxy, method, args);
}
return handler.get()
.handle(
@@ -138,39 +157,22 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
}
}
- private class RealDefaultMethod implements RealMethod {
+ private static class CommonClassLoader extends ClassLoader {
- private final Object proxy;
- private final SerializableMethod serializableMethod;
- private final Object[] args;
+ private final ClassLoader left, right;
- private RealDefaultMethod(Object proxy, Method method, Object[] args) {
- this.proxy = proxy;
- this.serializableMethod = new SerializableMethod(method);
- this.args = args;
- }
-
- @Override
- public boolean isInvokable() {
- return true;
+ private CommonClassLoader(ClassLoader left, ClassLoader right) {
+ super(null);
+ this.left = left;
+ this.right = right;
}
@Override
- public Object invoke() throws Throwable {
+ public Class> loadClass(String name) throws ClassNotFoundException {
try {
- return invokeDefault.invoke(null, proxy, serializableMethod.getJavaMethod(), args);
- } catch (InvocationTargetException e) {
- throw e.getTargetException();
- } catch (IllegalAccessException | IllegalArgumentException e) {
- throw new MockitoException(
- join(
- "Failed to access default method or invoked method with illegal arguments",
- "",
- "Method "
- + serializableMethod.getJavaMethod()
- + " could not be delegated, this is not supposed to happen",
- Platform.describe()),
- e);
+ return left.loadClass(name);
+ } catch (ClassNotFoundException ignored) {
+ return right.loadClass(name);
}
}
}
diff --git a/src/main/java/org/mockito/internal/creation/proxy/ProxyRealMethod.java b/src/main/java/org/mockito/internal/creation/proxy/ProxyRealMethod.java
new file mode 100644
index 0000000000..a6f140de1d
--- /dev/null
+++ b/src/main/java/org/mockito/internal/creation/proxy/ProxyRealMethod.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockito.internal.creation.proxy;
+
+import org.mockito.internal.invocation.RealMethod;
+
+import java.lang.reflect.Method;
+
+interface ProxyRealMethod {
+
+ RealMethod resolve(Object proxy, Method method, Object[] args);
+
+ static ProxyRealMethod make() {
+ // From Java 16 on, there is a standard API for invoking a default method from an invocation
+ // handler.
+ try {
+ return new InvokeDefaultProxy();
+ } catch (Throwable ignored) {
+ }
+ // Java 8 does not yet allow special method invocation via proxies. Therefore, we need to
+ // deep reflect what is no longer allowed after Java 8.
+ try {
+ return new MethodHandleProxy.LegacyVersion();
+ } catch (Throwable ignored) {
+ }
+ // Between Java 9 and 15, a default method can be invoked via regular method handle
+ // invocation.
+ try {
+ return new MethodHandleProxy();
+ } catch (Throwable ignored) {
+ }
+ // Nothing works, this might happen on Android where method handles are not supported on old
+ // versions. Default methods cannot be invoked.
+ return (proxy, method, args) -> RealMethod.IsIllegal.INSTANCE;
+ }
+}
diff --git a/src/main/java/org/mockito/internal/debugging/MockitoDebuggerImpl.java b/src/main/java/org/mockito/internal/debugging/MockitoDebuggerImpl.java
deleted file mode 100644
index 7300b20102..0000000000
--- a/src/main/java/org/mockito/internal/debugging/MockitoDebuggerImpl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.debugging;
-
-import static java.util.Arrays.asList;
-
-import java.util.List;
-
-import org.mockito.MockitoDebugger;
-import org.mockito.internal.invocation.UnusedStubsFinder;
-import org.mockito.internal.invocation.finder.AllInvocationsFinder;
-import org.mockito.invocation.Invocation;
-
-public class MockitoDebuggerImpl implements MockitoDebugger {
-
- private final UnusedStubsFinder unusedStubsFinder = new UnusedStubsFinder();
-
- /**
- * TODO: when MockitoDebugger is deleted, delete this implementation, too
- */
- @Deprecated
- public String printInvocations(Object... mocks) {
- String out = "";
- List invocations = AllInvocationsFinder.find(asList(mocks));
- out += line("********************************");
- out += line("*** Mockito interactions log ***");
- out += line("********************************");
- for (Invocation i : invocations) {
- out += line(i.toString());
- out += line(" invoked: " + i.getLocation());
- if (i.stubInfo() != null) {
- out += line(" stubbed: " + i.stubInfo().stubbedAt());
- }
- }
-
- invocations = unusedStubsFinder.find(asList(mocks));
- if (invocations.isEmpty()) {
- return print(out);
- }
- out += line("********************************");
- out += line("*** Unused stubs ***");
- out += line("********************************");
-
- for (Invocation i : invocations) {
- out += line(i.toString());
- out += line(" stubbed: " + i.getLocation());
- }
- return print(out);
- }
-
- private String line(String text) {
- return text + "\n";
- }
-
- private String print(String out) {
- System.out.println(out);
- return out;
- }
-}
diff --git a/src/main/java/org/mockito/internal/debugging/WarningsCollector.java b/src/main/java/org/mockito/internal/debugging/WarningsCollector.java
deleted file mode 100644
index 5c6b8f0b46..0000000000
--- a/src/main/java/org/mockito/internal/debugging/WarningsCollector.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.debugging;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.mockito.internal.invocation.InvocationMatcher;
-import org.mockito.internal.invocation.UnusedStubsFinder;
-import org.mockito.internal.invocation.finder.AllInvocationsFinder;
-import org.mockito.invocation.Invocation;
-
-@Deprecated
-public class WarningsCollector {
-
- private final List createdMocks;
-
- public WarningsCollector() {
- createdMocks = new LinkedList<>();
- }
-
- public String getWarnings() {
- List unused = new UnusedStubsFinder().find(createdMocks);
- List all = AllInvocationsFinder.find(createdMocks);
- List allInvocationMatchers = InvocationMatcher.createFrom(all);
-
- return new WarningsPrinterImpl(unused, allInvocationMatchers, false).print();
- }
-}
diff --git a/src/main/java/org/mockito/internal/exceptions/Reporter.java b/src/main/java/org/mockito/internal/exceptions/Reporter.java
index b22e128616..f91c6e1f0d 100644
--- a/src/main/java/org/mockito/internal/exceptions/Reporter.java
+++ b/src/main/java/org/mockito/internal/exceptions/Reporter.java
@@ -243,11 +243,11 @@ public static MockitoException invalidUseOfMatchers(
"",
"This exception may occur if matchers are combined with raw values:",
" //incorrect:",
- " someMethod(anyObject(), \"raw String\");",
+ " someMethod(any(), \"raw String\");",
"When using matchers, all arguments have to be provided by matchers.",
"For example:",
" //correct:",
- " someMethod(anyObject(), eq(\"String by matcher\"));",
+ " someMethod(any(), eq(\"String by matcher\"));",
"",
"For more info see javadoc for Matchers class.",
""));
@@ -626,7 +626,7 @@ public static MockitoException misplacedArgumentMatcher(List l
"You cannot use argument matchers outside of verification or stubbing.",
"Examples of correct usage of argument matchers:",
" when(mock.get(anyInt())).thenReturn(null);",
- " doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject());",
+ " doThrow(new RuntimeException()).when(mock).someVoidMethod(any());",
" verify(mock).someMethod(contains(\"foo\"))",
"",
"This message may appear after an NullPointerException if the last matcher is returning an object ",
diff --git a/src/main/java/org/mockito/internal/invocation/UnusedStubsFinder.java b/src/main/java/org/mockito/internal/invocation/UnusedStubsFinder.java
deleted file mode 100644
index fd8efa69c9..0000000000
--- a/src/main/java/org/mockito/internal/invocation/UnusedStubsFinder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.invocation;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.mockito.internal.util.MockUtil;
-import org.mockito.invocation.Invocation;
-import org.mockito.stubbing.Stubbing;
-
-@Deprecated
-public class UnusedStubsFinder {
-
- /**
- * Finds all unused stubs for given mocks
- *
- * @param mocks full list of mocks
- */
- public List find(List> mocks) {
- List unused = new LinkedList<>();
- for (Object mock : mocks) {
- List fromSingleMock =
- MockUtil.getInvocationContainer(mock).getStubbingsDescending();
- for (Stubbing s : fromSingleMock) {
- if (!s.wasUsed()) {
- unused.add(s.getInvocation());
- }
- }
- }
- return unused;
- }
-}
diff --git a/src/main/java/org/mockito/internal/junit/util/JUnitFailureHacker.java b/src/main/java/org/mockito/internal/junit/util/JUnitFailureHacker.java
deleted file mode 100644
index d6e784c647..0000000000
--- a/src/main/java/org/mockito/internal/junit/util/JUnitFailureHacker.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.junit.util;
-
-import java.lang.reflect.Field;
-
-import org.junit.runner.notification.Failure;
-import org.mockito.internal.configuration.plugins.Plugins;
-import org.mockito.internal.exceptions.ExceptionIncludingMockitoWarnings;
-import org.mockito.plugins.MemberAccessor;
-
-@Deprecated
-public class JUnitFailureHacker {
-
- public void appendWarnings(Failure failure, String warnings) {
- if (isEmpty(warnings)) {
- return;
- }
- // TODO: this has to protect the use in case jUnit changes and this internal state logic
- // fails
- Throwable throwable = (Throwable) getInternalState(failure, "fThrownException");
-
- String newMessage =
- "contains both: actual test failure *and* Mockito warnings.\n"
- + warnings
- + "\n *** The actual failure is because of: ***\n";
-
- ExceptionIncludingMockitoWarnings e =
- new ExceptionIncludingMockitoWarnings(newMessage, throwable);
- e.setStackTrace(throwable.getStackTrace());
- setInternalState(failure, "fThrownException", e);
- }
-
- private boolean isEmpty(String warnings) {
- return warnings == null || "".equals(warnings); // isEmpty() is in JDK 6+
- }
-
- private static Object getInternalState(Object target, String field) {
- MemberAccessor accessor = Plugins.getMemberAccessor();
- Class> c = target.getClass();
- try {
- Field f = getFieldFromHierarchy(c, field);
- return accessor.get(f, target);
- } catch (Exception e) {
- throw new RuntimeException(
- "Unable to get internal state on a private field. Please report to mockito mailing list.",
- e);
- }
- }
-
- private static void setInternalState(Object target, String field, Object value) {
- MemberAccessor accessor = Plugins.getMemberAccessor();
- Class> c = target.getClass();
- try {
- Field f = getFieldFromHierarchy(c, field);
- accessor.set(f, target, value);
- } catch (Exception e) {
- throw new RuntimeException(
- "Unable to set internal state on a private field. Please report to mockito mailing list.",
- e);
- }
- }
-
- private static Field getFieldFromHierarchy(Class> clazz, String field) {
- Field f = getField(clazz, field);
- while (f == null && clazz != Object.class) {
- clazz = clazz.getSuperclass();
- f = getField(clazz, field);
- }
- if (f == null) {
- throw new RuntimeException(
- "You want me to get this field: '"
- + field
- + "' on this class: '"
- + clazz.getSimpleName()
- + "' but this field is not declared within the hierarchy of this class!");
- }
- return f;
- }
-
- private static Field getField(Class> clazz, String field) {
- try {
- return clazz.getDeclaredField(field);
- } catch (NoSuchFieldException e) {
- return null;
- }
- }
-}
diff --git a/src/main/java/org/mockito/internal/verification/AtMost.java b/src/main/java/org/mockito/internal/verification/AtMost.java
index 57dedc4c66..72c0d00275 100644
--- a/src/main/java/org/mockito/internal/verification/AtMost.java
+++ b/src/main/java/org/mockito/internal/verification/AtMost.java
@@ -51,4 +51,9 @@ private void removeAlreadyVerified(List invocations) {
}
}
}
+
+ @Override
+ public String toString() {
+ return "Wanted invocations count: at most " + maxNumberOfInvocations;
+ }
}
diff --git a/src/main/java/org/mockito/internal/verification/Only.java b/src/main/java/org/mockito/internal/verification/Only.java
index 64ec47d5ab..aea8981d10 100644
--- a/src/main/java/org/mockito/internal/verification/Only.java
+++ b/src/main/java/org/mockito/internal/verification/Only.java
@@ -34,4 +34,9 @@ public void verify(VerificationData data) {
}
markVerified(chunk.get(0), target);
}
+
+ @Override
+ public String toString() {
+ return "Wanted invocations count: 1 and no other method invoked";
+ }
}
diff --git a/src/main/java/org/mockito/internal/verification/VerificationDataImpl.java b/src/main/java/org/mockito/internal/verification/VerificationDataImpl.java
index 4746130abb..a566ab5eaa 100644
--- a/src/main/java/org/mockito/internal/verification/VerificationDataImpl.java
+++ b/src/main/java/org/mockito/internal/verification/VerificationDataImpl.java
@@ -36,11 +36,6 @@ public MatchableInvocation getTarget() {
return wanted;
}
- @Override
- public InvocationMatcher getWanted() {
- return wanted;
- }
-
private void assertWantedIsVerifiable() {
if (wanted == null) {
return;
diff --git a/src/main/java/org/mockito/internal/verification/api/VerificationData.java b/src/main/java/org/mockito/internal/verification/api/VerificationData.java
index bc699209ff..f84f71e634 100644
--- a/src/main/java/org/mockito/internal/verification/api/VerificationData.java
+++ b/src/main/java/org/mockito/internal/verification/api/VerificationData.java
@@ -6,7 +6,6 @@
import java.util.List;
-import org.mockito.internal.invocation.InvocationMatcher;
import org.mockito.invocation.Invocation;
import org.mockito.invocation.MatchableInvocation;
@@ -39,13 +38,4 @@ public interface VerificationData {
* @since 2.2.12
*/
MatchableInvocation getTarget();
-
- /**
- * @deprecated - This internal method leaks internal class InvocationMatcher.
- * Please use {@link org.mockito.internal.verification.api.VerificationData#getTarget()} instead.
- *
- * Deprecated since 2.2.12
- */
- @Deprecated
- InvocationMatcher getWanted();
}
diff --git a/src/main/java/org/mockito/invocation/InvocationContainer.java b/src/main/java/org/mockito/invocation/InvocationContainer.java
index 9f0e82a2ee..d12df44e53 100644
--- a/src/main/java/org/mockito/invocation/InvocationContainer.java
+++ b/src/main/java/org/mockito/invocation/InvocationContainer.java
@@ -4,7 +4,6 @@
*/
package org.mockito.invocation;
-import org.mockito.Incubating;
import org.mockito.NotExtensible;
/**
@@ -17,5 +16,4 @@
* @since 2.10.0
*/
@NotExtensible
-@Incubating
public interface InvocationContainer {}
diff --git a/src/main/java/org/mockito/invocation/InvocationFactory.java b/src/main/java/org/mockito/invocation/InvocationFactory.java
index 3b2ef4c0c2..c28ef716b4 100644
--- a/src/main/java/org/mockito/invocation/InvocationFactory.java
+++ b/src/main/java/org/mockito/invocation/InvocationFactory.java
@@ -6,9 +6,7 @@
import java.io.Serializable;
import java.lang.reflect.Method;
-import java.util.concurrent.Callable;
-import org.mockito.Incubating;
import org.mockito.MockitoFramework;
import org.mockito.mock.MockCreationSettings;
@@ -24,36 +22,8 @@
*
* @since 2.10.0
*/
-@Incubating
public interface InvocationFactory {
- /**
- * @deprecated Use {@link #createInvocation(Object, MockCreationSettings, Method, RealMethodBehavior, Object...)} instead.
- *
- * Why deprecated? We found use cases where we need to handle Throwable and ensure correct stack trace filtering
- * (removing Mockito internals from the stack trace). Hence the introduction of {@link RealMethodBehavior}.
- *
- * Creates instance of an {@link Invocation} object.
- * This method is useful for framework integrators to programmatically simulate method calls on mocks using {@link MockHandler}.
- * It enables advanced framework integrations.
- *
- * @param target the mock object the method is invoked on.
- * @param settings creation settings of the mock object.
- * @param method java method invoked on mock.
- * @param realMethod real method behavior. Needed for spying / invoking real behavior on mock objects.
- * @param args the java method arguments
- *
- * @return invocation instance
- * @since 2.10.0
- */
- @Deprecated
- Invocation createInvocation(
- Object target,
- MockCreationSettings settings,
- Method method,
- Callable realMethod,
- Object... args);
-
/**
* Behavior of the real method.
*
@@ -77,7 +47,6 @@ interface RealMethodBehavior extends Serializable {
* @return invocation instance
* @since 2.14.0
*/
- @Incubating
Invocation createInvocation(
Object target,
MockCreationSettings settings,
diff --git a/src/main/java/org/mockito/invocation/MockHandler.java b/src/main/java/org/mockito/invocation/MockHandler.java
index d20b76b2e6..56a0004ad4 100644
--- a/src/main/java/org/mockito/invocation/MockHandler.java
+++ b/src/main/java/org/mockito/invocation/MockHandler.java
@@ -6,7 +6,6 @@
import java.io.Serializable;
-import org.mockito.Incubating;
import org.mockito.MockSettings;
import org.mockito.mock.MockCreationSettings;
@@ -44,7 +43,6 @@ public interface MockHandler extends Serializable {
* @return read-only settings of the mock
* @since 2.10.0
*/
- @Incubating
MockCreationSettings getMockSettings();
/**
@@ -60,6 +58,5 @@ public interface MockHandler extends Serializable {
* The container is not part of the public API, please do not cast it or provide custom implementations.
* @since 2.10.0
*/
- @Incubating
InvocationContainer getInvocationContainer();
}
diff --git a/src/main/java/org/mockito/junit/MockitoJUnit.java b/src/main/java/org/mockito/junit/MockitoJUnit.java
index 825303a510..bbe61308fd 100644
--- a/src/main/java/org/mockito/junit/MockitoJUnit.java
+++ b/src/main/java/org/mockito/junit/MockitoJUnit.java
@@ -5,7 +5,6 @@
package org.mockito.junit;
import org.junit.rules.TestRule;
-import org.mockito.Incubating;
import org.mockito.internal.configuration.plugins.Plugins;
import org.mockito.internal.junit.JUnitRule;
import org.mockito.internal.junit.JUnitTestRule;
@@ -56,7 +55,6 @@ public static MockitoTestRule testRule(Object testInstance) {
* @return the rule instance
* @since 2.1.0
*/
- @Incubating
public static VerificationCollector collector() {
return new VerificationCollectorImpl();
}
diff --git a/src/main/java/org/mockito/junit/MockitoRule.java b/src/main/java/org/mockito/junit/MockitoRule.java
index 0869d012ac..10a2735e92 100644
--- a/src/main/java/org/mockito/junit/MockitoRule.java
+++ b/src/main/java/org/mockito/junit/MockitoRule.java
@@ -5,7 +5,6 @@
package org.mockito.junit;
import org.junit.rules.MethodRule;
-import org.mockito.Incubating;
import org.mockito.MockSettings;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
@@ -146,6 +145,5 @@ public interface MockitoRule extends MethodRule {
*
* @since 2.3.0
*/
- @Incubating
MockitoRule strictness(Strictness strictness);
}
diff --git a/src/main/java/org/mockito/junit/MockitoTestRule.java b/src/main/java/org/mockito/junit/MockitoTestRule.java
index 33c15e498c..5efc690a76 100644
--- a/src/main/java/org/mockito/junit/MockitoTestRule.java
+++ b/src/main/java/org/mockito/junit/MockitoTestRule.java
@@ -5,7 +5,6 @@
package org.mockito.junit;
import org.junit.rules.TestRule;
-import org.mockito.Incubating;
import org.mockito.quality.Strictness;
/**
@@ -28,6 +27,5 @@ public interface MockitoTestRule extends TestRule {
*
* @since 3.3.0
*/
- @Incubating
MockitoTestRule strictness(Strictness strictness);
}
diff --git a/src/main/java/org/mockito/junit/VerificationCollector.java b/src/main/java/org/mockito/junit/VerificationCollector.java
index 08962b58f3..c214b5dd22 100644
--- a/src/main/java/org/mockito/junit/VerificationCollector.java
+++ b/src/main/java/org/mockito/junit/VerificationCollector.java
@@ -5,7 +5,6 @@
package org.mockito.junit;
import org.junit.rules.TestRule;
-import org.mockito.Incubating;
import org.mockito.exceptions.base.MockitoAssertionError;
/**
@@ -37,7 +36,6 @@
* @see org.mockito.Mockito#verify(Object, org.mockito.verification.VerificationMode)
* @since 2.1.0
*/
-@Incubating
public interface VerificationCollector extends TestRule {
/**
@@ -70,7 +68,6 @@ public interface VerificationCollector extends TestRule {
* @throws MockitoAssertionError If there were failed verifications
* @since 2.1.0
*/
- @Incubating
void collectAndReport() throws MockitoAssertionError;
/**
@@ -96,6 +93,5 @@ public interface VerificationCollector extends TestRule {
* @return this
* @since 2.1.0
*/
- @Incubating
VerificationCollector assertLazily();
}
diff --git a/src/main/java/org/mockito/listeners/VerificationListener.java b/src/main/java/org/mockito/listeners/VerificationListener.java
index c42be31752..9f3aaae548 100644
--- a/src/main/java/org/mockito/listeners/VerificationListener.java
+++ b/src/main/java/org/mockito/listeners/VerificationListener.java
@@ -4,7 +4,6 @@
*/
package org.mockito.listeners;
-import org.mockito.Incubating;
import org.mockito.verification.VerificationEvent;
/**
@@ -12,7 +11,6 @@
*
* For this to happen, it must be registered using {@link org.mockito.internal.progress.MockingProgress#addListener(MockitoListener)}.
*/
-@Incubating
public interface VerificationListener extends MockitoListener {
/**
* Called after a verification happened.
diff --git a/src/main/java/org/mockito/listeners/VerificationStartedEvent.java b/src/main/java/org/mockito/listeners/VerificationStartedEvent.java
index b2f4a00dd8..0eb72ce410 100644
--- a/src/main/java/org/mockito/listeners/VerificationStartedEvent.java
+++ b/src/main/java/org/mockito/listeners/VerificationStartedEvent.java
@@ -4,15 +4,12 @@
*/
package org.mockito.listeners;
-import org.mockito.Incubating;
-
/**
* The instance of this class is passed to {@link VerificationStartedListener}.
* For all the details, including how and why to use this API, see {@link VerificationStartedListener}.
*
* @since 2.11.0
*/
-@Incubating
public interface VerificationStartedEvent {
/**
@@ -27,7 +24,6 @@ public interface VerificationStartedEvent {
* @param mock to be used for verification.
* @since 2.11.0
*/
- @Incubating
void setMock(Object mock);
/**
@@ -37,6 +33,5 @@ public interface VerificationStartedEvent {
*
* @since 2.11.0
*/
- @Incubating
Object getMock();
}
diff --git a/src/main/java/org/mockito/listeners/VerificationStartedListener.java b/src/main/java/org/mockito/listeners/VerificationStartedListener.java
index f555125557..d942a1cc3c 100644
--- a/src/main/java/org/mockito/listeners/VerificationStartedListener.java
+++ b/src/main/java/org/mockito/listeners/VerificationStartedListener.java
@@ -4,8 +4,6 @@
*/
package org.mockito.listeners;
-import org.mockito.Incubating;
-
/**
* This listener gets notified when the user starts verification.
* It allows to replace the mock object for verification.
@@ -54,7 +52,6 @@
*
* @since 2.11.0
*/
-@Incubating
public interface VerificationStartedListener {
/**
@@ -64,6 +61,5 @@ public interface VerificationStartedListener {
* @param event object that allows to identify and replace mock for verification.
* @since 2.11.0
*/
- @Incubating
void onVerificationStarted(VerificationStartedEvent event);
}
diff --git a/src/main/java/org/mockito/mock/MockCreationSettings.java b/src/main/java/org/mockito/mock/MockCreationSettings.java
index 726428660b..23d5418a14 100644
--- a/src/main/java/org/mockito/mock/MockCreationSettings.java
+++ b/src/main/java/org/mockito/mock/MockCreationSettings.java
@@ -7,7 +7,6 @@
import java.util.List;
import java.util.Set;
-import org.mockito.Incubating;
import org.mockito.MockSettings;
import org.mockito.NotExtensible;
import org.mockito.listeners.InvocationListener;
@@ -90,7 +89,6 @@ public interface MockCreationSettings {
*
* @since 2.11.0
*/
- @Incubating
List getVerificationStartedListeners();
/**
@@ -98,7 +96,6 @@ public interface MockCreationSettings {
*
* @since 1.10.12
*/
- @Incubating
boolean isUsingConstructor();
/**
@@ -110,7 +107,6 @@ public interface MockCreationSettings {
*
* @since 2.7.14
*/
- @Incubating
Object[] getConstructorArgs();
/**
@@ -119,7 +115,6 @@ public interface MockCreationSettings {
* @return the outer class instance used for creation of the mock object via the constructor.
* @since 1.10.12
*/
- @Incubating
Object getOuterClassInstance();
/**
@@ -128,6 +123,5 @@ public interface MockCreationSettings {
*
* @since 2.20.0
*/
- @Incubating
boolean isLenient();
}
diff --git a/src/main/java/org/mockito/mock/SerializableMode.java b/src/main/java/org/mockito/mock/SerializableMode.java
index 790fc04f1d..41a5f36796 100644
--- a/src/main/java/org/mockito/mock/SerializableMode.java
+++ b/src/main/java/org/mockito/mock/SerializableMode.java
@@ -4,12 +4,9 @@
*/
package org.mockito.mock;
-import org.mockito.Incubating;
-
/**
* Mock serializable style.
*/
-@Incubating
public enum SerializableMode {
/**
@@ -25,6 +22,5 @@ public enum SerializableMode {
/**
* Useful if the mock is deserialized in a different classloader / vm.
*/
- @Incubating
ACROSS_CLASSLOADERS
}
diff --git a/src/main/java/org/mockito/plugins/InlineMockMaker.java b/src/main/java/org/mockito/plugins/InlineMockMaker.java
index f271d5203a..08fab59ae3 100644
--- a/src/main/java/org/mockito/plugins/InlineMockMaker.java
+++ b/src/main/java/org/mockito/plugins/InlineMockMaker.java
@@ -4,7 +4,6 @@
*/
package org.mockito.plugins;
-import org.mockito.Incubating;
import org.mockito.MockitoFramework;
/**
@@ -26,7 +25,6 @@
*
* @since 2.25.0
*/
-@Incubating
public interface InlineMockMaker extends MockMaker {
/**
@@ -36,7 +34,6 @@ public interface InlineMockMaker extends MockMaker {
* @param mock the mock instance whose internal state is to be cleaned.
* @since 2.25.0
*/
- @Incubating
void clearMock(Object mock);
/**
@@ -45,6 +42,5 @@ public interface InlineMockMaker extends MockMaker {
*
* @since 2.25.0
*/
- @Incubating
void clearAllMocks();
}
diff --git a/src/main/java/org/mockito/plugins/InstantiatorProvider.java b/src/main/java/org/mockito/plugins/InstantiatorProvider.java
deleted file mode 100644
index 354b87b082..0000000000
--- a/src/main/java/org/mockito/plugins/InstantiatorProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.plugins;
-
-import org.mockito.internal.creation.instance.Instantiator;
-import org.mockito.mock.MockCreationSettings;
-
-/**
- * @deprecated since 2.15.4 because this internal class was leaking from the public API.
- * For more information why deprecated, see {@link org.mockito.plugins.InstantiatorProvider2} and
- * Issue 1303
- *
- *
- * Mockito will invoke this interface in order to fetch an instance instantiator provider.
- *
- *
- *
- * By default, an internal byte-buddy/asm/objenesis based implementation is used.
- *
- *
- *
Using the extension point
- *
- *
- * The plugin mechanism of mockito works in a similar way as the
- * {@link java.util.ServiceLoader}, however instead of looking in the META-INF
- * directory, Mockito will look in mockito-extensions directory.
- * The reason for that is that Android SDK strips jar from the META-INF
- * directory when creating an APK.
- *
- *
- *
- *
The implementation itself, for example
- * org.awesome.mockito.AwesomeInstantiatorProvider that implements the
- * InstantiatorProvider.
- *
A file "mockito-extensions/org.mockito.plugins.InstantiatorProvider".
- * The content of this file is exactly a one line with the qualified
- * name: org.awesome.mockito.AwesomeInstantiatorProvider.
- *
- *
- *
- * Note that if several mockito-extensions/org.mockito.plugins.InstantiatorProvider
- * files exists in the classpath, Mockito will only use the first returned by the standard
- * {@link ClassLoader#getResource} mechanism.
- *
- * So just create a custom implementation of {@link InstantiatorProvider} and place the
- * qualified name in the following file
- * mockito-extensions/org.mockito.plugins.InstantiatorProvider.
- *
- *
- * This class is deprecated and was replaced by
- * {@link org.mockito.plugins.InstantiatorProvider2}. Hence if there is both a
- * mockito-extensions/org.mockito.plugins.InstantiatorProvider and
- * mockito-extensions/org.mockito.plugins.InstantiatorProvider2 the second one
- * takes preference.
- *
- *
- * @since 2.0.31
- */
-@Deprecated
-public interface InstantiatorProvider {
-
- /**
- * @deprecated, see {@link InstantiatorProvider}.
- *
- * Returns an instantiator, used to create new class instances.
- */
- @Deprecated
- Instantiator getInstantiator(MockCreationSettings> settings);
-}
diff --git a/src/main/java/org/mockito/plugins/MemberAccessor.java b/src/main/java/org/mockito/plugins/MemberAccessor.java
index caccb656da..6a39d6c93f 100644
--- a/src/main/java/org/mockito/plugins/MemberAccessor.java
+++ b/src/main/java/org/mockito/plugins/MemberAccessor.java
@@ -4,8 +4,6 @@
*/
package org.mockito.plugins;
-import org.mockito.Incubating;
-
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@@ -15,7 +13,6 @@
* A member accessor is responsible for invoking methods, constructors and for setting
* and reading field values.
*/
-@Incubating
public interface MemberAccessor {
Object newInstance(Constructor> constructor, Object... arguments)
diff --git a/src/main/java/org/mockito/plugins/MockMaker.java b/src/main/java/org/mockito/plugins/MockMaker.java
index 7e06e32e5f..93a87ef0a5 100644
--- a/src/main/java/org/mockito/plugins/MockMaker.java
+++ b/src/main/java/org/mockito/plugins/MockMaker.java
@@ -4,7 +4,6 @@
*/
package org.mockito.plugins;
-import org.mockito.Incubating;
import org.mockito.MockedConstruction;
import org.mockito.exceptions.base.MockitoException;
import org.mockito.invocation.MockHandler;
@@ -132,7 +131,6 @@ default Optional createSpy(
* @return object that carries the information about mockability of given type.
* @since 2.1.0
*/
- @Incubating
TypeMockability isTypeMockable(Class> type);
/**
@@ -151,7 +149,6 @@ default Optional createSpy(
* @return A control for the static mock.
* @since 3.4.0
*/
- @Incubating
default StaticMockControl createStaticMock(
Class type, MockCreationSettings settings, MockHandler handler) {
throw new MockitoException(
@@ -181,7 +178,6 @@ default StaticMockControl createStaticMock(
* @return A control for the mocked construction.
* @since 3.5.0
*/
- @Incubating
default ConstructionMockControl createConstructionMock(
Class type,
Function> settingsFactory,
@@ -201,7 +197,6 @@ default ConstructionMockControl createConstructionMock(
/**
* Clears all cashes for mocked types and removes all byte code alterations, if possible.
*/
- @Incubating
default void clearAllCaches() {}
/**
@@ -209,7 +204,6 @@ default void clearAllCaches() {}
*
* @since 2.1.0
*/
- @Incubating
interface TypeMockability {
/**
* informs if type is mockable
@@ -222,7 +216,6 @@ interface TypeMockability {
String nonMockableReason();
}
- @Incubating
interface StaticMockControl {
Class getType();
@@ -232,7 +225,6 @@ interface StaticMockControl {
void disable();
}
- @Incubating
interface ConstructionMockControl {
Class getType();
diff --git a/src/main/java/org/mockito/plugins/MockitoLogger.java b/src/main/java/org/mockito/plugins/MockitoLogger.java
index 38ca4a8a23..d1f981be3a 100644
--- a/src/main/java/org/mockito/plugins/MockitoLogger.java
+++ b/src/main/java/org/mockito/plugins/MockitoLogger.java
@@ -4,8 +4,6 @@
*/
package org.mockito.plugins;
-import org.mockito.Incubating;
-
/**
* Mockito logger.
*
@@ -35,13 +33,11 @@
*
* @since 2.23.19
*/
-@Incubating
public interface MockitoLogger {
/**
* Log specified object.
*
* @param what to be logged
*/
- @Incubating
void log(Object what);
}
diff --git a/src/main/java/org/mockito/plugins/PluginSwitch.java b/src/main/java/org/mockito/plugins/PluginSwitch.java
index 916db246c9..a5db3473f7 100644
--- a/src/main/java/org/mockito/plugins/PluginSwitch.java
+++ b/src/main/java/org/mockito/plugins/PluginSwitch.java
@@ -4,8 +4,6 @@
*/
package org.mockito.plugins;
-import org.mockito.Incubating;
-
/**
* Allows switching off the plugins that are discovered on classpath.
*
@@ -42,7 +40,6 @@
*
* @since 1.10.15
*/
-@Incubating
public interface PluginSwitch {
/**
diff --git a/src/main/java/org/mockito/quality/Strictness.java b/src/main/java/org/mockito/quality/Strictness.java
index 20ce8cb33d..b25cab33e6 100644
--- a/src/main/java/org/mockito/quality/Strictness.java
+++ b/src/main/java/org/mockito/quality/Strictness.java
@@ -4,7 +4,6 @@
*/
package org.mockito.quality;
-import org.mockito.Incubating;
import org.mockito.MockitoSession;
import org.mockito.exceptions.misusing.PotentialStubbingProblem;
import org.mockito.exceptions.misusing.UnnecessaryStubbingException;
@@ -38,7 +37,6 @@
*
* @since 2.3.0
*/
-@Incubating
public enum Strictness {
/**
@@ -49,7 +47,6 @@ public enum Strictness {
*
* @since 2.3.0
*/
- @Incubating
LENIENT,
/**
@@ -62,7 +59,6 @@ public enum Strictness {
*
* @since 2.3.0
*/
- @Incubating
WARN,
/**
@@ -88,6 +84,5 @@ public enum Strictness {
*
* @since 2.3.0
*/
- @Incubating
STRICT_STUBS;
}
diff --git a/src/main/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunner.java b/src/main/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunner.java
deleted file mode 100644
index d169dd74e0..0000000000
--- a/src/main/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunner.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.runners;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.junit.runner.Description;
-import org.junit.runner.Runner;
-import org.junit.runner.manipulation.Filter;
-import org.junit.runner.manipulation.Filterable;
-import org.junit.runner.manipulation.NoTestsRemainException;
-import org.junit.runner.notification.Failure;
-import org.junit.runner.notification.RunListener;
-import org.junit.runner.notification.RunNotifier;
-import org.mockito.internal.configuration.plugins.Plugins;
-import org.mockito.internal.debugging.WarningsCollector;
-import org.mockito.internal.runners.InternalRunner;
-import org.mockito.internal.runners.RunnerFactory;
-import org.mockito.plugins.MockitoLogger;
-
-/**
- * @deprecated as of 2.1.0. Use the {@link org.mockito.junit.MockitoJUnitRunner} runner instead
- * which contains support for detecting unused stubs.
- *
- * If you still prefer using this runner, tell us why (create ticket in our issue tracker).
- */
-@Deprecated
-public class ConsoleSpammingMockitoJUnitRunner extends Runner implements Filterable {
-
- private final MockitoLogger logger;
- private final InternalRunner runner;
-
- public ConsoleSpammingMockitoJUnitRunner(Class> klass) throws InvocationTargetException {
- this(Plugins.getMockitoLogger(), new RunnerFactory().create(klass));
- }
-
- ConsoleSpammingMockitoJUnitRunner(MockitoLogger logger, InternalRunner runner) {
- this.runner = runner;
- this.logger = logger;
- }
-
- @Override
- public void run(RunNotifier notifier) {
- RunListener listener =
- new RunListener() {
- WarningsCollector warningsCollector;
-
- @Override
- public void testStarted(Description description) throws Exception {
- warningsCollector = new WarningsCollector();
- }
-
- @Override
- public void testFailure(Failure failure) throws Exception {
- logger.log(warningsCollector.getWarnings());
- }
- };
-
- notifier.addListener(listener);
-
- runner.run(notifier);
- }
-
- @Override
- public Description getDescription() {
- return runner.getDescription();
- }
-
- @Override
- public void filter(Filter filter) throws NoTestsRemainException {
- // filter is required because without it UnrootedTests show up in Eclipse
- runner.filter(filter);
- }
-}
diff --git a/src/main/java/org/mockito/runners/MockitoJUnitRunner.java b/src/main/java/org/mockito/runners/MockitoJUnitRunner.java
deleted file mode 100644
index b906fdd1f7..0000000000
--- a/src/main/java/org/mockito/runners/MockitoJUnitRunner.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.runners;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.junit.runner.Description;
-import org.junit.runner.manipulation.Filter;
-import org.junit.runner.manipulation.NoTestsRemainException;
-import org.junit.runner.notification.RunNotifier;
-
-/**
- * Runner moved to a new place see {@link org.mockito.junit.MockitoJUnitRunner}
- *
- * @deprecated Moved to {@link org.mockito.junit.MockitoJUnitRunner}, this class will be removed with Mockito 4
- */
-@Deprecated
-public class MockitoJUnitRunner extends org.mockito.junit.MockitoJUnitRunner {
-
- /**
- * Silent runner moved to a new place see {@link org.mockito.junit.MockitoJUnitRunner.Silent}
- *
- * @deprecated Moved to {@link org.mockito.junit.MockitoJUnitRunner.Silent}, this class will be removed with Mockito 4
- */
- @Deprecated
- public static class Silent extends MockitoJUnitRunner {
- public Silent(Class> klass) throws InvocationTargetException {
- super(klass);
- }
- }
-
- /**
- * Silent runner moved to a new place see {@link org.mockito.junit.MockitoJUnitRunner.Strict}
- *
- * @deprecated Moved to {@link org.mockito.junit.MockitoJUnitRunner.Strict}, this class will be removed with Mockito 4
- */
- @Deprecated
- public static class Strict extends MockitoJUnitRunner {
- public Strict(Class> klass) throws InvocationTargetException {
- super(klass);
- }
- }
-
- public MockitoJUnitRunner(Class> klass) throws InvocationTargetException {
- super(klass);
- }
-
- @Deprecated
- @Override
- public void run(final RunNotifier notifier) {
- super.run(notifier);
- }
-
- @Deprecated
- @Override
- public Description getDescription() {
- return super.getDescription();
- }
-
- @Override
- @Deprecated
- public void filter(Filter filter) throws NoTestsRemainException {
- super.filter(filter);
- }
-}
diff --git a/src/main/java/org/mockito/runners/VerboseMockitoJUnitRunner.java b/src/main/java/org/mockito/runners/VerboseMockitoJUnitRunner.java
deleted file mode 100644
index 0a29c192ee..0000000000
--- a/src/main/java/org/mockito/runners/VerboseMockitoJUnitRunner.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.runners;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.junit.runner.Description;
-import org.junit.runner.Runner;
-import org.junit.runner.manipulation.Filter;
-import org.junit.runner.manipulation.Filterable;
-import org.junit.runner.manipulation.NoTestsRemainException;
-import org.junit.runner.notification.Failure;
-import org.junit.runner.notification.RunListener;
-import org.junit.runner.notification.RunNotifier;
-import org.mockito.internal.debugging.WarningsCollector;
-import org.mockito.internal.junit.util.JUnitFailureHacker;
-import org.mockito.internal.runners.InternalRunner;
-import org.mockito.internal.runners.RunnerFactory;
-
-/**
- * @deprecated as of 2.1.0. Use the {@link org.mockito.junit.MockitoJUnitRunner} runner instead
- * which contains support for detecting unused stubs.
- *
- * If you still prefer using this runner, tell us why (create ticket in our issue tracker).
- */
-@Deprecated
-public class VerboseMockitoJUnitRunner extends Runner implements Filterable {
-
- private final InternalRunner runner;
-
- public VerboseMockitoJUnitRunner(Class> klass) throws InvocationTargetException {
- this(new RunnerFactory().create(klass));
- }
-
- VerboseMockitoJUnitRunner(InternalRunner runner) {
- this.runner = runner;
- }
-
- @Override
- public void run(RunNotifier notifier) {
-
- // a listener that changes the failure's exception in a very hacky way...
- RunListener listener =
- new RunListener() {
-
- WarningsCollector warningsCollector;
-
- @Override
- public void testStarted(Description description) throws Exception {
- warningsCollector = new WarningsCollector();
- }
-
- @Override
- @SuppressWarnings("deprecation")
- public void testFailure(final Failure failure) throws Exception {
- String warnings = warningsCollector.getWarnings();
- new JUnitFailureHacker().appendWarnings(failure, warnings);
- }
- };
-
- notifier.addFirstListener(listener);
-
- runner.run(notifier);
- }
-
- @Override
- public Description getDescription() {
- return runner.getDescription();
- }
-
- @Override
- public void filter(Filter filter) throws NoTestsRemainException {
- // filter is required because without it UnrootedTests show up in Eclipse
- runner.filter(filter);
- }
-}
diff --git a/src/main/java/org/mockito/runners/package-info.java b/src/main/java/org/mockito/runners/package-info.java
deleted file mode 100644
index ab2fb8cb0e..0000000000
--- a/src/main/java/org/mockito/runners/package-info.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-
-/**
- * JUnit runners.
- */
-@Deprecated
-package org.mockito.runners;
diff --git a/src/main/java/org/mockito/session/MockitoSessionBuilder.java b/src/main/java/org/mockito/session/MockitoSessionBuilder.java
index 648ca9d41e..6a84205670 100644
--- a/src/main/java/org/mockito/session/MockitoSessionBuilder.java
+++ b/src/main/java/org/mockito/session/MockitoSessionBuilder.java
@@ -4,7 +4,6 @@
*/
package org.mockito.session;
-import org.mockito.Incubating;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
import org.mockito.NotExtensible;
@@ -17,7 +16,6 @@
*
* @since 2.7.0
*/
-@Incubating
@NotExtensible
public interface MockitoSessionBuilder {
@@ -41,7 +39,6 @@ public interface MockitoSessionBuilder {
* @return the same builder instance for fluent configuration of {@code MockitoSession}.
* @since 2.7.0
*/
- @Incubating
MockitoSessionBuilder initMocks(Object testClassInstance);
/**
@@ -59,7 +56,6 @@ public interface MockitoSessionBuilder {
* @see #initMocks(Object)
* @since 2.15.0
*/
- @Incubating
MockitoSessionBuilder initMocks(Object... testClassInstances);
/**
@@ -81,7 +77,6 @@ public interface MockitoSessionBuilder {
* @see org.mockito.quality.MockitoHint
* @since 2.15.0
*/
- @Incubating
MockitoSessionBuilder name(String name);
/**
@@ -95,7 +90,6 @@ public interface MockitoSessionBuilder {
* @return the same builder instance for fluent configuration of {@code MockitoSession}.
* @since 2.7.0
*/
- @Incubating
MockitoSessionBuilder strictness(Strictness strictness);
/**
@@ -114,7 +108,6 @@ public interface MockitoSessionBuilder {
* @see org.mockito.quality.MockitoHint
* @since 2.15.0
*/
- @Incubating
MockitoSessionBuilder logger(MockitoSessionLogger logger);
/**
@@ -136,6 +129,5 @@ public interface MockitoSessionBuilder {
* @throws UnfinishedMockingSessionException
* when previous session was not concluded with {@link MockitoSession#finishMocking()}
*/
- @Incubating
MockitoSession startMocking() throws UnfinishedMockingSessionException;
}
diff --git a/src/main/java/org/mockito/session/MockitoSessionLogger.java b/src/main/java/org/mockito/session/MockitoSessionLogger.java
index bf365d5707..7d2e1350cd 100644
--- a/src/main/java/org/mockito/session/MockitoSessionLogger.java
+++ b/src/main/java/org/mockito/session/MockitoSessionLogger.java
@@ -4,7 +4,6 @@
*/
package org.mockito.session;
-import org.mockito.Incubating;
import org.mockito.MockitoSession;
import org.mockito.NotExtensible;
@@ -17,7 +16,6 @@
*
* @since 2.15.0
*/
-@Incubating
@NotExtensible
public interface MockitoSessionLogger {
@@ -26,6 +24,5 @@ public interface MockitoSessionLogger {
*
* @param hint to log; never {@code null}
*/
- @Incubating
void log(String hint);
}
diff --git a/src/main/java/org/mockito/stubbing/Answer1.java b/src/main/java/org/mockito/stubbing/Answer1.java
index afc2a5e424..e370dca419 100644
--- a/src/main/java/org/mockito/stubbing/Answer1.java
+++ b/src/main/java/org/mockito/stubbing/Answer1.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a single argument invocation.
*
@@ -31,7 +29,6 @@
* @param type of the single argument
* @see Answer
*/
-@Incubating
public interface Answer1 {
/**
* @param argument0 the single argument.
diff --git a/src/main/java/org/mockito/stubbing/Answer2.java b/src/main/java/org/mockito/stubbing/Answer2.java
index 77944b7366..71b5a03d03 100644
--- a/src/main/java/org/mockito/stubbing/Answer2.java
+++ b/src/main/java/org/mockito/stubbing/Answer2.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a two argument invocation.
*
@@ -32,7 +30,6 @@
* @param type of the second argument
* @see Answer
*/
-@Incubating
public interface Answer2 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/Answer3.java b/src/main/java/org/mockito/stubbing/Answer3.java
index e80f06eadc..1aa4abfb03 100644
--- a/src/main/java/org/mockito/stubbing/Answer3.java
+++ b/src/main/java/org/mockito/stubbing/Answer3.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a three argument invocation.
*
@@ -33,7 +31,6 @@
* @param type of the third argument
* @see Answer
*/
-@Incubating
public interface Answer3 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/Answer4.java b/src/main/java/org/mockito/stubbing/Answer4.java
index f89a2019f9..bfc6c3185e 100644
--- a/src/main/java/org/mockito/stubbing/Answer4.java
+++ b/src/main/java/org/mockito/stubbing/Answer4.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a four argument invocation.
*
@@ -34,7 +32,6 @@
* @param type of the fourth argument
* @see Answer
*/
-@Incubating
public interface Answer4 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/Answer5.java b/src/main/java/org/mockito/stubbing/Answer5.java
index 3e83968b4c..d5e12e10f4 100644
--- a/src/main/java/org/mockito/stubbing/Answer5.java
+++ b/src/main/java/org/mockito/stubbing/Answer5.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a five argument invocation.
*
@@ -34,7 +32,6 @@
* @param type of the fourth argument
* @see Answer
*/
-@Incubating
public interface Answer5 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/Answer6.java b/src/main/java/org/mockito/stubbing/Answer6.java
index 11a95c1977..b3248db449 100644
--- a/src/main/java/org/mockito/stubbing/Answer6.java
+++ b/src/main/java/org/mockito/stubbing/Answer6.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a six argument invocation.
*
@@ -36,7 +34,6 @@
* @param type of the sixth argument
* @see Answer
*/
-@Incubating
public interface Answer6 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/Stubbing.java b/src/main/java/org/mockito/stubbing/Stubbing.java
index cba0917f97..48b5ee4dad 100644
--- a/src/main/java/org/mockito/stubbing/Stubbing.java
+++ b/src/main/java/org/mockito/stubbing/Stubbing.java
@@ -4,7 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
import org.mockito.MockingDetails;
import org.mockito.Mockito;
import org.mockito.NotExtensible;
@@ -60,6 +59,5 @@ public interface Stubbing extends Answer {
*
* @since 2.20.0
*/
- @Incubating
Strictness getStrictness();
}
diff --git a/src/main/java/org/mockito/stubbing/ValidableAnswer.java b/src/main/java/org/mockito/stubbing/ValidableAnswer.java
index 9d0bde1bd2..a5dacaa46c 100644
--- a/src/main/java/org/mockito/stubbing/ValidableAnswer.java
+++ b/src/main/java/org/mockito/stubbing/ValidableAnswer.java
@@ -4,7 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
import org.mockito.invocation.InvocationOnMock;
/**
@@ -39,7 +38,7 @@
*
*
* when(mock.someMethod(anyString(), anyInt())).then(doSomethingTricky()); // fail at answer execution time
- * when(mock.incompatibleMethod(anyVararg())).then(doSomethingTricky()); // fail at answer execution time
+ * when(mock.incompatibleMethod(any())).then(doSomethingTricky()); // fail at answer execution time
*
*
*
@@ -48,7 +47,7 @@
* validable at stub time by implementing this contract.
*
*
- * when(mock.incompatibleMethod(anyVararg())).then(doSomethingTricky()); // fail at answer stub time
+ * when(mock.incompatibleMethod(any())).then(doSomethingTricky()); // fail at answer stub time
*
* static Answer doSomethingTricky() {
* return new TrickyAnswer();
@@ -68,7 +67,6 @@
*
* @since 2.3.8
*/
-@Incubating
public interface ValidableAnswer {
/**
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer1.java b/src/main/java/org/mockito/stubbing/VoidAnswer1.java
index 9f75bf5b9e..df563a92f5 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer1.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer1.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a single argument invocation that returns nothing.
*
@@ -30,7 +28,6 @@
* @param type of the single argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer1 {
/**
* @param argument0 the single argument.
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer2.java b/src/main/java/org/mockito/stubbing/VoidAnswer2.java
index 8d062f163d..a9b6ef47ab 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer2.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer2.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a two argument invocation that returns nothing.
*
@@ -31,7 +29,6 @@
* @param type of the second argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer2 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer3.java b/src/main/java/org/mockito/stubbing/VoidAnswer3.java
index b56498297b..a2c6a072a0 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer3.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer3.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a three argument invocation that returns nothing.
*
@@ -32,7 +30,6 @@
* @param type of the third argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer3 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer4.java b/src/main/java/org/mockito/stubbing/VoidAnswer4.java
index c34abee33b..aec382be9a 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer4.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer4.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a four argument invocation that returns nothing.
*
@@ -33,7 +31,6 @@
* @param type of the fourth argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer4 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer5.java b/src/main/java/org/mockito/stubbing/VoidAnswer5.java
index 87db6136ad..fc4b8b280a 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer5.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer5.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a five argument invocation that returns nothing.
*
@@ -34,7 +32,6 @@
* @param type of the fifth argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer5 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/stubbing/VoidAnswer6.java b/src/main/java/org/mockito/stubbing/VoidAnswer6.java
index 545ca3f591..879b516c1c 100644
--- a/src/main/java/org/mockito/stubbing/VoidAnswer6.java
+++ b/src/main/java/org/mockito/stubbing/VoidAnswer6.java
@@ -4,8 +4,6 @@
*/
package org.mockito.stubbing;
-import org.mockito.Incubating;
-
/**
* Generic interface to be used for configuring mock's answer for a six argument invocation that returns nothing.
*
@@ -35,7 +33,6 @@
* @param type of the sixth argument
* @see Answer
*/
-@Incubating
public interface VoidAnswer6 {
/**
* @param argument0 the first argument.
diff --git a/src/main/java/org/mockito/verification/After.java b/src/main/java/org/mockito/verification/After.java
index 5e7a0b8eae..ed87333925 100644
--- a/src/main/java/org/mockito/verification/After.java
+++ b/src/main/java/org/mockito/verification/After.java
@@ -38,4 +38,13 @@ public After(long delayMillis, VerificationMode verificationMode) {
protected VerificationMode copySelfWithNewVerificationMode(VerificationMode verificationMode) {
return new After(wrappedVerification.copyWithVerificationMode(verificationMode));
}
+
+ @Override
+ public String toString() {
+ return "Wanted after "
+ + wrappedVerification.getTimer().duration()
+ + " ms: ["
+ + wrappedVerification.getDelegate()
+ + "]";
+ }
}
diff --git a/src/main/java/org/mockito/verification/Timeout.java b/src/main/java/org/mockito/verification/Timeout.java
index 502bb9fc0e..405a4356d8 100644
--- a/src/main/java/org/mockito/verification/Timeout.java
+++ b/src/main/java/org/mockito/verification/Timeout.java
@@ -62,4 +62,13 @@ public VerificationMode atMost(int maxNumberOfInvocations) {
public VerificationMode never() {
throw atMostAndNeverShouldNotBeUsedWithTimeout();
}
+
+ @Override
+ public String toString() {
+ return "Wanted after at most "
+ + wrappedVerification.getTimer().duration()
+ + " ms: ["
+ + wrappedVerification.getDelegate()
+ + "]";
+ }
}
diff --git a/src/main/java/org/mockito/verification/VerificationEvent.java b/src/main/java/org/mockito/verification/VerificationEvent.java
index fad511b6ff..0469bd2fa7 100644
--- a/src/main/java/org/mockito/verification/VerificationEvent.java
+++ b/src/main/java/org/mockito/verification/VerificationEvent.java
@@ -4,13 +4,11 @@
*/
package org.mockito.verification;
-import org.mockito.Incubating;
import org.mockito.internal.verification.api.VerificationData;
/**
* Contains all information about a verification that has happened.
*/
-@Incubating
public interface VerificationEvent {
/**
* @return The mock that a verification happened on.
diff --git a/src/test/java/org/mockito/InvocationFactoryTest.java b/src/test/java/org/mockito/InvocationFactoryTest.java
index 5837a7d86f..8864e05a57 100644
--- a/src/test/java/org/mockito/InvocationFactoryTest.java
+++ b/src/test/java/org/mockito/InvocationFactoryTest.java
@@ -9,8 +9,6 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.withSettings;
-import java.util.concurrent.Callable;
-
import org.junit.Test;
import org.mockito.invocation.Invocation;
import org.mockito.invocation.InvocationFactory;
@@ -70,23 +68,4 @@ public Object call() throws Throwable {
Object ret = Mockito.mockingDetails(mock).getMockHandler().handle(invocation);
assertEquals("mocked", ret);
}
-
- @Test
- public void deprecated_api_still_works() throws Throwable {
- Invocation invocation =
- Mockito.framework()
- .getInvocationFactory()
- .createInvocation(
- mock,
- withSettings().build(TestClass.class),
- TestClass.class.getDeclaredMethod("testMethod"),
- new Callable() {
- public Object call() throws Exception {
- return "mocked";
- }
- });
-
- Object ret = Mockito.mockingDetails(mock).getMockHandler().handle(invocation);
- assertEquals("mocked", ret);
- }
}
diff --git a/src/test/java/org/mockito/MockitoTest.java b/src/test/java/org/mockito/MockitoTest.java
index b41dd2091b..687ae4cd4b 100644
--- a/src/test/java/org/mockito/MockitoTest.java
+++ b/src/test/java/org/mockito/MockitoTest.java
@@ -44,11 +44,6 @@ public void shouldValidateMockWhenVerifyingNoMoreInteractions() {
Mockito.verifyNoMoreInteractions("notMock");
}
- @Test(expected = NotAMockException.class)
- public void shouldValidateMockWhenVerifyingZeroInteractions() {
- Mockito.verifyZeroInteractions("notMock");
- }
-
@Test(expected = NotAMockException.class)
public void shouldValidateMockWhenVerifyingNoInteractions() {
Mockito.verifyNoInteractions("notMock");
diff --git a/src/test/java/org/mockito/configuration/MockitoConfiguration.java b/src/test/java/org/mockito/configuration/MockitoConfiguration.java
index 5834485e43..ab65516f11 100644
--- a/src/test/java/org/mockito/configuration/MockitoConfiguration.java
+++ b/src/test/java/org/mockito/configuration/MockitoConfiguration.java
@@ -5,7 +5,6 @@
package org.mockito.configuration;
import org.mockito.stubbing.Answer;
-import org.mockitousage.configuration.CustomizedAnnotationForSmartMockTest;
public class MockitoConfiguration extends DefaultMockitoConfiguration
implements IMockitoConfiguration {
@@ -14,7 +13,7 @@ public class MockitoConfiguration extends DefaultMockitoConfiguration
private boolean cleansStackTrace;
- private AnnotationEngine overriddenEngine;
+ private org.mockito.plugins.AnnotationEngine overriddenEngine;
private boolean enableClassCache = true;
@@ -29,7 +28,7 @@ public void overrideCleansStackTrace(boolean cleansStackTrace) {
}
// for testing purposes, allow to override the annotation engine
- public void overrideAnnotationEngine(AnnotationEngine engine) {
+ public void overrideAnnotationEngine(org.mockito.plugins.AnnotationEngine engine) {
this.overriddenEngine = engine;
}
@@ -47,14 +46,6 @@ public Answer getDefaultAnswer() {
}
}
- @Override
- public AnnotationEngine getAnnotationEngine() {
- if (this.overriddenEngine != null) {
- return this.overriddenEngine;
- }
- return new CustomizedAnnotationForSmartMockTest.CustomInjectingAnnotationEngine();
- }
-
@Override
public boolean cleansStackTrace() {
return cleansStackTrace;
diff --git a/src/test/java/org/mockito/internal/InvalidStateDetectionTest.java b/src/test/java/org/mockito/internal/InvalidStateDetectionTest.java
index ae31893b47..be466a049c 100644
--- a/src/test/java/org/mockito/internal/InvalidStateDetectionTest.java
+++ b/src/test/java/org/mockito/internal/InvalidStateDetectionTest.java
@@ -30,12 +30,10 @@
*
* -on method call on mock
* -on verify
- * -on verifyZeroInteractions
* -on verifyNoMoreInteractions
* -on verify in order
* -on stub
*/
-@SuppressWarnings({"unchecked", "deprecation"})
public class InvalidStateDetectionTest extends TestBase {
@Mock private IMethods mock;
@@ -60,9 +58,6 @@ public void shouldDetectUnfinishedStubbing() {
when(mock.simpleMethod());
detectsAndCleansUp(new OnVerifyInOrder(), UnfinishedStubbingException.class);
- when(mock.simpleMethod());
- detectsAndCleansUp(new OnVerifyZeroInteractions(), UnfinishedStubbingException.class);
-
when(mock.simpleMethod());
detectsAndCleansUp(new OnVerifyNoMoreInteractions(), UnfinishedStubbingException.class);
@@ -88,9 +83,6 @@ public void shouldDetectUnfinishedDoAnswerStubbing() {
doAnswer(null);
detectsAndCleansUp(new OnVerifyInOrder(), UnfinishedStubbingException.class);
- doAnswer(null);
- detectsAndCleansUp(new OnVerifyZeroInteractions(), UnfinishedStubbingException.class);
-
doAnswer(null);
detectsAndCleansUp(new OnVerifyNoMoreInteractions(), UnfinishedStubbingException.class);
@@ -113,9 +105,6 @@ public void shouldDetectUnfinishedVerification() {
verify(mock);
detectsAndCleansUp(new OnVerifyInOrder(), UnfinishedVerificationException.class);
- verify(mock);
- detectsAndCleansUp(new OnVerifyZeroInteractions(), UnfinishedVerificationException.class);
-
verify(mock);
detectsAndCleansUp(new OnVerifyNoMoreInteractions(), UnfinishedVerificationException.class);
@@ -128,22 +117,19 @@ public void shouldDetectUnfinishedVerification() {
@Test
public void shouldDetectMisplacedArgumentMatcher() {
- Object ignored = anyObject();
+ Object ignored = any();
detectsAndCleansUp(new OnVerify(), InvalidUseOfMatchersException.class);
- ignored = anyObject();
+ ignored = any();
detectsAndCleansUp(new OnVerifyInOrder(), InvalidUseOfMatchersException.class);
- ignored = anyObject();
- detectsAndCleansUp(new OnVerifyZeroInteractions(), InvalidUseOfMatchersException.class);
-
- ignored = anyObject();
+ ignored = any();
detectsAndCleansUp(new OnVerifyNoMoreInteractions(), InvalidUseOfMatchersException.class);
- ignored = anyObject();
+ ignored = any();
detectsAndCleansUp(new OnVerifyNoInteractions(), InvalidUseOfMatchersException.class);
- ignored = anyObject();
+ ignored = any();
detectsAndCleansUp(new OnDoAnswer(), InvalidUseOfMatchersException.class);
}
@@ -198,13 +184,6 @@ public void detect(IMethods mock) {
}
}
- private static class OnVerifyZeroInteractions implements DetectsInvalidState {
- @SuppressWarnings({"CheckReturnValue", "MockitoUsage"})
- public void detect(IMethods mock) {
- verifyZeroInteractions(mock);
- }
- }
-
private static class OnVerifyNoMoreInteractions implements DetectsInvalidState {
@SuppressWarnings({"CheckReturnValue", "MockitoUsage"})
public void detect(IMethods mock) {
diff --git a/src/test/java/org/mockito/internal/configuration/GlobalConfigurationTest.java b/src/test/java/org/mockito/internal/configuration/GlobalConfigurationTest.java
index d5590ccfa6..48cf998b00 100644
--- a/src/test/java/org/mockito/internal/configuration/GlobalConfigurationTest.java
+++ b/src/test/java/org/mockito/internal/configuration/GlobalConfigurationTest.java
@@ -11,21 +11,11 @@
import org.junit.After;
import org.junit.Test;
import org.mockito.Mockito;
-import org.mockito.configuration.AnnotationEngine;
import org.mockito.internal.configuration.plugins.Plugins;
import org.mockitoutil.ClassLoaders;
import org.objenesis.Objenesis;
public class GlobalConfigurationTest {
- @Test
- public void returns_mockito_configuration_annotation_engine_if_non_default() throws Exception {
- ConfigurationAccess.getConfig().overrideAnnotationEngine(new CustomAnnotationEngine());
- assertThat(new GlobalConfiguration().getAnnotationEngine())
- .isInstanceOf(CustomAnnotationEngine.class);
- assertThat(new GlobalConfiguration().tryGetPluginAnnotationEngine())
- .isInstanceOf(CustomAnnotationEngine.class);
- }
-
@Test
public void returns_mockito_annotation_engine_of_Plugins_if_no_MockitoConfiguration()
throws Throwable {
@@ -44,8 +34,6 @@ public void returns_mockito_annotation_engine_of_Plugins_if_no_MockitoConfigurat
new Runnable() {
@Override
public void run() {
- assertThat(new GlobalConfiguration().getAnnotationEngine())
- .isInstanceOf(Plugins.getAnnotationEngine().getClass());
assertThat(new GlobalConfiguration().tryGetPluginAnnotationEngine())
.isInstanceOf(Plugins.getAnnotationEngine().getClass());
}
@@ -57,7 +45,7 @@ public void reset_annotation_engine() {
ConfigurationAccess.getConfig().overrideAnnotationEngine(null);
}
- private static class CustomAnnotationEngine implements AnnotationEngine {
+ private static class CustomAnnotationEngine implements org.mockito.plugins.AnnotationEngine {
@Override
public AutoCloseable process(Class> clazz, Object testInstance) {
return new NoAction();
diff --git a/src/test/java/org/mockito/internal/configuration/plugins/DefaultMockitoPluginsTest.java b/src/test/java/org/mockito/internal/configuration/plugins/DefaultMockitoPluginsTest.java
index ab97bc5f1d..44afe0b6a9 100644
--- a/src/test/java/org/mockito/internal/configuration/plugins/DefaultMockitoPluginsTest.java
+++ b/src/test/java/org/mockito/internal/configuration/plugins/DefaultMockitoPluginsTest.java
@@ -12,7 +12,6 @@
import org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker;
import org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker;
import org.mockito.internal.util.ConsoleMockitoLogger;
-import org.mockito.plugins.InstantiatorProvider;
import org.mockito.plugins.InstantiatorProvider2;
import org.mockito.plugins.MockMaker;
import org.mockito.plugins.MockitoLogger;
@@ -23,7 +22,6 @@ public class DefaultMockitoPluginsTest extends TestBase {
private DefaultMockitoPlugins plugins = new DefaultMockitoPlugins();
@Test
- @SuppressWarnings("deprecation")
public void provides_plugins() throws Exception {
assertEquals(
"org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker",
@@ -34,7 +32,6 @@ public void provides_plugins() throws Exception {
plugins.getDefaultPluginClass(PROXY_ALIAS));
assertEquals(
ByteBuddyMockMaker.class, plugins.getDefaultPlugin(MockMaker.class).getClass());
- assertNotNull(plugins.getDefaultPlugin(InstantiatorProvider.class));
assertNotNull(plugins.getDefaultPlugin(InstantiatorProvider2.class));
assertEquals(
ConsoleMockitoLogger.class,
diff --git a/src/test/java/org/mockito/internal/configuration/plugins/PluginFinderTest.java b/src/test/java/org/mockito/internal/configuration/plugins/PluginFinderTest.java
index dcfc7f6dc8..4b704461da 100644
--- a/src/test/java/org/mockito/internal/configuration/plugins/PluginFinderTest.java
+++ b/src/test/java/org/mockito/internal/configuration/plugins/PluginFinderTest.java
@@ -8,7 +8,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.*;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import java.io.File;
diff --git a/src/test/java/org/mockito/internal/creation/bytebuddy/SubclassByteBuddyMockMakerTest.java b/src/test/java/org/mockito/internal/creation/bytebuddy/SubclassByteBuddyMockMakerTest.java
index 154fc9a856..6e082287d1 100644
--- a/src/test/java/org/mockito/internal/creation/bytebuddy/SubclassByteBuddyMockMakerTest.java
+++ b/src/test/java/org/mockito/internal/creation/bytebuddy/SubclassByteBuddyMockMakerTest.java
@@ -4,13 +4,6 @@
*/
package org.mockito.internal.creation.bytebuddy;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Observable;
-import java.util.Observer;
-
import net.bytebuddy.ByteBuddy;
import net.bytebuddy.ClassFileVersion;
import net.bytebuddy.description.modifier.TypeManifestation;
@@ -19,6 +12,13 @@
import org.mockito.internal.creation.MockSettingsImpl;
import org.mockito.plugins.MockMaker;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Observable;
+import java.util.Observer;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
public class SubclassByteBuddyMockMakerTest
extends AbstractByteBuddyMockMakerTest {
@@ -35,22 +35,16 @@ public void is_type_mockable_excludes_primitive_wrapper_classes() {
@Test
public void is_type_mockable_excludes_sealed_classes() {
- // is only supported on Java 17 and later
if (ClassFileVersion.ofThisVm().isAtMost(ClassFileVersion.JAVA_V16)) {
return;
}
- DynamicType.Builder base = new ByteBuddy().subclass(Object.class);
- DynamicType.Unloaded dynamic =
- new ByteBuddy()
- .subclass(Object.class)
- .permittedSubclass(base.toTypeDescription())
- .make();
+ DynamicType.Builder> base = new ByteBuddy().subclass(Object.class);
+ DynamicType.Builder> subclass =
+ new ByteBuddy().subclass(base.toTypeDescription()).merge(TypeManifestation.FINAL);
Class> type =
- new ByteBuddy()
- .subclass(base.toTypeDescription())
- .merge(TypeManifestation.FINAL)
+ base.permittedSubclass(subclass.toTypeDescription())
.make()
- .include(dynamic)
+ .include(subclass.make())
.load(null)
.getLoaded();
MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(type);
diff --git a/src/test/java/org/mockito/internal/creation/proxy/ProxyMockMakerTest.java b/src/test/java/org/mockito/internal/creation/proxy/ProxyMockMakerTest.java
index f113d5e315..fd6009dae3 100644
--- a/src/test/java/org/mockito/internal/creation/proxy/ProxyMockMakerTest.java
+++ b/src/test/java/org/mockito/internal/creation/proxy/ProxyMockMakerTest.java
@@ -42,10 +42,11 @@ public void should_create_mock_from_interface_with_extra_interface() {
@Test
public void should_discover_mockable_input() {
- assertThat(mockMaker.isTypeMockable(Object.class).mockable()).isFalse();
- assertThat(mockMaker.isTypeMockable(Object.class).nonMockableReason())
+ assertThat(mockMaker.isTypeMockable(Number.class).mockable()).isFalse();
+ assertThat(mockMaker.isTypeMockable(Number.class).nonMockableReason())
.isEqualTo("non-interface");
assertThat(mockMaker.isTypeMockable(SomeInterface.class).mockable()).isTrue();
+ assertThat(mockMaker.isTypeMockable(Object.class).mockable()).isTrue();
}
@Test
diff --git a/src/test/java/org/mockito/internal/handler/InvocationNotifierHandlerTest.java b/src/test/java/org/mockito/internal/handler/InvocationNotifierHandlerTest.java
index a95921bfcc..273674f614 100644
--- a/src/test/java/org/mockito/internal/handler/InvocationNotifierHandlerTest.java
+++ b/src/test/java/org/mockito/internal/handler/InvocationNotifierHandlerTest.java
@@ -8,7 +8,7 @@
import static org.junit.Assert.fail;
import static org.mockito.BDDMockito.given;
import static org.mockito.BDDMockito.willThrow;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
diff --git a/src/test/java/org/mockito/internal/handler/MockHandlerImplTest.java b/src/test/java/org/mockito/internal/handler/MockHandlerImplTest.java
index c0fed25fb1..b109b7eeca 100644
--- a/src/test/java/org/mockito/internal/handler/MockHandlerImplTest.java
+++ b/src/test/java/org/mockito/internal/handler/MockHandlerImplTest.java
@@ -7,7 +7,7 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import static org.mockito.BDDMockito.given;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress;
diff --git a/src/test/java/org/mockito/internal/invocation/MatcherApplicationStrategyTest.java b/src/test/java/org/mockito/internal/invocation/MatcherApplicationStrategyTest.java
index b79a1fc082..285bfecc66 100644
--- a/src/test/java/org/mockito/internal/invocation/MatcherApplicationStrategyTest.java
+++ b/src/test/java/org/mockito/internal/invocation/MatcherApplicationStrategyTest.java
@@ -120,7 +120,7 @@ public void shouldKnowWhenVarargsMatch() {
}
@Test
- public void shouldAllowAnyVarargMatchEntireVararg() {
+ public void shouldAllowAnyMatchEntireVararg() {
// given
invocation = varargs("1", "2");
matchers = asList(ANY);
@@ -135,7 +135,7 @@ public void shouldAllowAnyVarargMatchEntireVararg() {
}
@Test
- public void shouldNotAllowAnyObjectWithMixedVarargs() {
+ public void shouldNotAllowAnyWithMixedVarargs() {
// given
invocation = mixedVarargs(1, "1", "2");
matchers = asList(new Equals(1));
@@ -150,7 +150,7 @@ public void shouldNotAllowAnyObjectWithMixedVarargs() {
}
@Test
- public void shouldAllowAnyObjectWithMixedVarargs() {
+ public void shouldAllowanyWithMixedVarargs() {
// given
invocation = mixedVarargs(1, "1", "2");
matchers = asList(new Equals(1), ANY);
@@ -165,7 +165,7 @@ public void shouldAllowAnyObjectWithMixedVarargs() {
}
@Test
- public void shouldAnyObjectVarargDealWithDifferentSizeOfArgs() {
+ public void shouldAnyDealWithDifferentSizeOfArgs() {
// given
invocation = mixedVarargs(1, "1", "2");
matchers = asList(new Equals(1));
@@ -182,7 +182,7 @@ public void shouldAnyObjectVarargDealWithDifferentSizeOfArgs() {
}
@Test
- public void shouldMatchAnyVarargEvenIfOneOfTheArgsIsNull() {
+ public void shouldMatchAnyEvenIfOneOfTheArgsIsNull() {
// given
invocation = mixedVarargs(null, null, "2");
matchers = asList(new Equals(null), ANY);
@@ -196,7 +196,7 @@ public void shouldMatchAnyVarargEvenIfOneOfTheArgsIsNull() {
}
@Test
- public void shouldMatchAnyVarargEvenIfMatcherIsDecorated() {
+ public void shouldMatchAnyEvenIfMatcherIsDecorated() {
// given
invocation = varargs("1", "2");
matchers = asList(ANY);
@@ -210,7 +210,7 @@ public void shouldMatchAnyVarargEvenIfMatcherIsDecorated() {
}
@Test
- public void shouldMatchAnyVarargEvenIfMatcherIsWrappedInHamcrestMatcher() {
+ public void shouldMatchAnyEvenIfMatcherIsWrappedInHamcrestMatcher() {
// given
invocation = varargs("1", "2");
HamcrestArgumentMatcher argumentMatcher = new HamcrestArgumentMatcher(new IntMatcher());
diff --git a/src/test/java/org/mockito/internal/junit/util/JUnitFailureHackerTest.java b/src/test/java/org/mockito/internal/junit/util/JUnitFailureHackerTest.java
deleted file mode 100644
index 3e3fb8d633..0000000000
--- a/src/test/java/org/mockito/internal/junit/util/JUnitFailureHackerTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.internal.junit.util;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-
-import org.assertj.core.api.Assertions;
-import org.junit.Test;
-import org.junit.runner.Description;
-import org.junit.runner.notification.Failure;
-import org.mockito.internal.exceptions.ExceptionIncludingMockitoWarnings;
-import org.mockitoutil.TestBase;
-
-public class JUnitFailureHackerTest extends TestBase {
-
- JUnitFailureHacker hacker = new JUnitFailureHacker();
-
- @Test
- public void shouldReplaceException() throws Exception {
- // given
- RuntimeException actualExc = new RuntimeException("foo");
- Failure failure = new Failure(Description.EMPTY, actualExc);
-
- // when
- hacker.appendWarnings(failure, "unused stubbing");
-
- // then
- assertEquals(ExceptionIncludingMockitoWarnings.class, failure.getException().getClass());
- assertEquals(actualExc, failure.getException().getCause());
- Assertions.assertThat(actualExc.getStackTrace())
- .isEqualTo(failure.getException().getStackTrace());
- }
-
- @Test
- public void shouldAppendWarning() throws Exception {
- Failure failure = new Failure(Description.EMPTY, new RuntimeException("foo"));
-
- // when
- hacker.appendWarnings(failure, "unused stubbing blah");
-
- // then
- assertThat(failure.getException()).hasMessageContaining("unused stubbing blah");
- }
-
- @Test
- public void shouldNotAppendWhenNoWarnings() throws Exception {
- RuntimeException ex = new RuntimeException("foo");
- Failure failure = new Failure(Description.EMPTY, ex);
-
- // when
- hacker.appendWarnings(failure, "");
-
- // then
- assertEquals(ex, failure.getException());
- }
-
- @Test
- public void shouldNotAppendWhenNullWarnings() throws Exception {
- RuntimeException ex = new RuntimeException("foo");
- Failure failure = new Failure(Description.EMPTY, ex);
-
- // when
- hacker.appendWarnings(failure, null);
-
- // then
- assertEquals(ex, failure.getException());
- }
-
- @Test
- public void shouldPrintTheWarningSoICanSeeIt() throws Exception {
- Failure failure = new Failure(Description.EMPTY, new RuntimeException("foo"));
-
- // when
- hacker.appendWarnings(failure, "unused stubbing blah");
-
- // then
- System.out.println(failure.getException());
- }
-}
diff --git a/src/test/java/org/mockito/internal/util/reflection/FieldInitializerTest.java b/src/test/java/org/mockito/internal/util/reflection/FieldInitializerTest.java
index aecdcb4fb0..47a8769c4c 100644
--- a/src/test/java/org/mockito/internal/util/reflection/FieldInitializerTest.java
+++ b/src/test/java/org/mockito/internal/util/reflection/FieldInitializerTest.java
@@ -6,7 +6,7 @@
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.given;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import java.lang.reflect.Field;
diff --git a/src/test/java/org/mockito/internal/util/reflection/GenericMetadataSupportTest.java b/src/test/java/org/mockito/internal/util/reflection/GenericMetadataSupportTest.java
index 6c6333cd56..cb1d73ab49 100644
--- a/src/test/java/org/mockito/internal/util/reflection/GenericMetadataSupportTest.java
+++ b/src/test/java/org/mockito/internal/util/reflection/GenericMetadataSupportTest.java
@@ -116,16 +116,16 @@ public void can_get_raw_type_from_ParameterizedType() {
public void can_get_type_variables_from_Class() {
assertThat(inferFrom(GenericsNest.class).actualTypeArguments().keySet())
.hasSize(1)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("K");
assertThat(inferFrom(ListOfNumbers.class).actualTypeArguments().keySet()).isEmpty();
assertThat(inferFrom(ListOfAnyNumbers.class).actualTypeArguments().keySet())
.hasSize(1)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("N");
assertThat(inferFrom(Map.class).actualTypeArguments().keySet())
.hasSize(2)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("K", "V");
assertThat(inferFrom(Serializable.class).actualTypeArguments().keySet()).isEmpty();
assertThat(inferFrom(StringList.class).actualTypeArguments().keySet()).isEmpty();
@@ -153,21 +153,21 @@ public void can_get_type_variables_from_ParameterizedType() {
.actualTypeArguments()
.keySet())
.hasSize(2)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("K", "V");
assertThat(
inferFrom(ListOfAnyNumbers.class.getGenericInterfaces()[0])
.actualTypeArguments()
.keySet())
.hasSize(1)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("E");
assertThat(
inferFrom(Integer.class.getGenericInterfaces()[0])
.actualTypeArguments()
.keySet())
.hasSize(1)
- .extracting("name")
+ .extracting(TypeVariable::getName)
.contains("T");
assertThat(
inferFrom(StringBuilder.class.getGenericInterfaces()[0])
diff --git a/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java b/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java
index e70d8aa3c4..310218a66f 100644
--- a/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java
+++ b/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java
@@ -136,7 +136,7 @@ public void shouldContinueEvenIfThereAreProblemsCopyingSingleFieldValue() throws
.doThrow(new IllegalStateException())
.doNothing()
.when(tool.accessor)
- .set(any(Field.class), anyObject(), anyObject());
+ .set(any(Field.class), any(), any());
// when
tool.copyToMock(from, to);
diff --git a/src/test/java/org/mockito/internal/util/reflection/ParameterizedConstructorInstantiatorTest.java b/src/test/java/org/mockito/internal/util/reflection/ParameterizedConstructorInstantiatorTest.java
index cb7549601c..9e63e8df69 100644
--- a/src/test/java/org/mockito/internal/util/reflection/ParameterizedConstructorInstantiatorTest.java
+++ b/src/test/java/org/mockito/internal/util/reflection/ParameterizedConstructorInstantiatorTest.java
@@ -73,7 +73,7 @@ public void should_be_created_with_an_argument_resolver() throws Exception {
public void should_instantiate_type_if_resolver_provide_matching_types() throws Exception {
Observer observer = mock(Observer.class);
Map map = mock(Map.class);
- given(resolver.resolveTypeInstances(ArgumentMatchers.[]>anyVararg()))
+ given(resolver.resolveTypeInstances(ArgumentMatchers.[]>any()))
.willReturn(new Object[] {observer, map});
new ParameterizedConstructorInstantiator(this, field("withMultipleConstructor"), resolver)
@@ -104,7 +104,7 @@ this, field("withMultipleConstructor"), resolver)
@Test
public void should_report_failure_if_constructor_throws_exception() throws Exception {
- given(resolver.resolveTypeInstances(ArgumentMatchers.[]>anyVararg()))
+ given(resolver.resolveTypeInstances(ArgumentMatchers.[]>any()))
.willReturn(new Object[] {null});
try {
@@ -120,7 +120,7 @@ this, field("withThrowingConstructor"), resolver)
@Test
public void should_instantiate_type_with_vararg_constructor() throws Exception {
Observer[] vararg = new Observer[] {};
- given(resolver.resolveTypeInstances(ArgumentMatchers.[]>anyVararg()))
+ given(resolver.resolveTypeInstances(ArgumentMatchers.[]>any()))
.willReturn(new Object[] {"", vararg});
new ParameterizedConstructorInstantiator(this, field("withVarargConstructor"), resolver)
diff --git a/src/test/java/org/mockito/internal/verification/DummyVerificationMode.java b/src/test/java/org/mockito/internal/verification/DummyVerificationMode.java
index 92b3b640d4..6b5f4c028f 100644
--- a/src/test/java/org/mockito/internal/verification/DummyVerificationMode.java
+++ b/src/test/java/org/mockito/internal/verification/DummyVerificationMode.java
@@ -13,4 +13,9 @@ public void verify(VerificationData data) {}
public VerificationMode description(String description) {
return new DummyVerificationMode();
}
+
+ @Override
+ public String toString() {
+ return "Dummy verification mode";
+ }
}
diff --git a/src/test/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunnerTest.java b/src/test/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunnerTest.java
deleted file mode 100644
index a9b487c137..0000000000
--- a/src/test/java/org/mockito/runners/ConsoleSpammingMockitoJUnitRunnerTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockito.runners;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.Description;
-import org.junit.runner.manipulation.Filter;
-import org.junit.runner.manipulation.NoTestsRemainException;
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.model.InitializationError;
-import org.mockito.internal.runners.InternalRunner;
-import org.mockito.internal.util.ConsoleMockitoLogger;
-import org.mockitoutil.TestBase;
-
-public class ConsoleSpammingMockitoJUnitRunnerTest extends TestBase {
-
- private ConsoleSpammingMockitoJUnitRunner runner;
-
- private MockitoLoggerStub loggerStub;
-
- private RunNotifier notifier;
-
- @Before
- public void setup() throws InitializationError {
- loggerStub = new MockitoLoggerStub();
- notifier = new RunNotifier();
- }
-
- // TODO add sensible tests
-
- @Test
- public void shouldDelegateToGetDescription() throws Exception {
- // given
- final Description expectedDescription = Description.createSuiteDescription(this.getClass());
- runner =
- new ConsoleSpammingMockitoJUnitRunner(
- loggerStub,
- new InternalRunnerStub() {
- public Description getDescription() {
- return expectedDescription;
- }
- });
-
- // when
- Description description = runner.getDescription();
-
- // then
- assertEquals(expectedDescription, description);
- }
-
- public class MockitoLoggerStub extends ConsoleMockitoLogger {
-
- StringBuilder loggedInfo = new StringBuilder();
-
- public void log(Object what) {
- super.log(what);
- loggedInfo.append(what);
- }
-
- public String getLoggedInfo() {
- return loggedInfo.toString();
- }
- }
-
- static class InternalRunnerStub implements InternalRunner {
-
- public Description getDescription() {
- return null;
- }
-
- public void run(RunNotifier notifier) {}
-
- public void filter(Filter filter) throws NoTestsRemainException {}
- }
-}
diff --git a/src/test/java/org/mockitousage/PlaygroundWithDemoOfUnclonedParametersProblemTest.java b/src/test/java/org/mockitousage/PlaygroundWithDemoOfUnclonedParametersProblemTest.java
index e3289f344f..3ff4379f20 100644
--- a/src/test/java/org/mockitousage/PlaygroundWithDemoOfUnclonedParametersProblemTest.java
+++ b/src/test/java/org/mockitousage/PlaygroundWithDemoOfUnclonedParametersProblemTest.java
@@ -7,7 +7,7 @@
import static org.junit.Assert.assertEquals;
import static org.mockito.BDDMockito.given;
import static org.mockito.BDDMockito.willAnswer;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import java.util.Date;
diff --git a/src/test/java/org/mockitousage/annotation/DeprecatedAnnotationEngineApiTest.java b/src/test/java/org/mockitousage/annotation/DeprecatedAnnotationEngineApiTest.java
deleted file mode 100644
index a02434cdaf..0000000000
--- a/src/test/java/org/mockitousage/annotation/DeprecatedAnnotationEngineApiTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.annotation;
-
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.configuration.AnnotationEngine;
-import org.mockito.configuration.DefaultMockitoConfiguration;
-import org.mockito.internal.configuration.ConfigurationAccess;
-import org.mockito.internal.configuration.IndependentAnnotationEngine;
-import org.mockitoutil.TestBase;
-
-public class DeprecatedAnnotationEngineApiTest extends TestBase {
-
- @After
- public void goBackToDefaultConfiguration() {
- ConfigurationAccess.getConfig().overrideAnnotationEngine(null);
- }
-
- class SimpleTestCase {
- @InjectMocks Tested tested = new Tested();
- @Mock Dependency mock;
- }
-
- class Tested {
- Dependency dependency;
-
- public void setDependency(Dependency dependency) {
- this.dependency = dependency;
- }
- }
-
- class Dependency {}
-
- @Test
- public void shouldInjectMocksIfThereIsNoUserDefinedEngine() throws Exception {
- // given
- AnnotationEngine defaultEngine = new DefaultMockitoConfiguration().getAnnotationEngine();
- ConfigurationAccess.getConfig().overrideAnnotationEngine(defaultEngine);
- SimpleTestCase test = new SimpleTestCase();
-
- // when
- MockitoAnnotations.openMocks(test);
-
- // then
- assertNotNull(test.mock);
- assertNotNull(test.tested.dependency);
- assertSame(test.mock, test.tested.dependency);
- }
-
- @Test
- public void shouldRespectUsersEngine() throws Exception {
- // given
- AnnotationEngine customizedEngine = new IndependentAnnotationEngine() {
- /**/
- };
- ConfigurationAccess.getConfig().overrideAnnotationEngine(customizedEngine);
- SimpleTestCase test = new SimpleTestCase();
-
- // when
- MockitoAnnotations.openMocks(test);
-
- // then
- assertNotNull(test.mock);
- assertNull(test.tested.dependency);
- }
-}
diff --git a/src/test/java/org/mockitousage/basicapi/MocksSerializationForAnnotationTest.java b/src/test/java/org/mockitousage/basicapi/MocksSerializationForAnnotationTest.java
index 749beeb35b..736de4e933 100644
--- a/src/test/java/org/mockitousage/basicapi/MocksSerializationForAnnotationTest.java
+++ b/src/test/java/org/mockitousage/basicapi/MocksSerializationForAnnotationTest.java
@@ -300,7 +300,7 @@ public void should_serialize_object_mock() throws Exception {
@Test
public void should_serialize_real_partial_mock() throws Exception {
// given
- when(anyMock.matches(anyObject())).thenCallRealMethod();
+ when(anyMock.matches(any())).thenCallRealMethod();
// when
ByteArrayOutputStream serialized = serializeMock(anyMock);
diff --git a/src/test/java/org/mockitousage/basicapi/MocksSerializationTest.java b/src/test/java/org/mockitousage/basicapi/MocksSerializationTest.java
index f1a40697b5..0bd6d5b502 100644
--- a/src/test/java/org/mockitousage/basicapi/MocksSerializationTest.java
+++ b/src/test/java/org/mockitousage/basicapi/MocksSerializationTest.java
@@ -312,7 +312,7 @@ public void should_serialize_object_mock() throws Exception {
public void should_serialize_real_partial_mock() throws Exception {
// given
Any mock = mock(Any.class, withSettings().serializable());
- when(mock.matches(anyObject())).thenCallRealMethod();
+ when(mock.matches(any())).thenCallRealMethod();
// when
ByteArrayOutputStream serialized = serializeMock(mock);
diff --git a/src/test/java/org/mockitousage/basicapi/ResetTest.java b/src/test/java/org/mockitousage/basicapi/ResetTest.java
index 8f4d7238de..95f4730f70 100644
--- a/src/test/java/org/mockitousage/basicapi/ResetTest.java
+++ b/src/test/java/org/mockitousage/basicapi/ResetTest.java
@@ -57,7 +57,7 @@ public void shouldRemoveAllStubbing() throws Exception {
public void shouldRemoveAllInteractions() throws Exception {
mock.simpleMethod(1);
reset(mock);
- verifyZeroInteractions(mock);
+ verifyNoInteractions(mock);
}
@Test
@@ -75,14 +75,6 @@ public void shouldRemoveStubbingToString() throws Exception {
assertThat(mockTwo.toString()).contains("Mock for IMethods");
}
- @Test
- public void shouldStubbingNotBeTreatedAsInteraction() {
- when(mock.simpleMethod("one")).thenThrow(new RuntimeException());
- doThrow(new RuntimeException()).when(mock).simpleMethod("two");
- reset(mock);
- verifyZeroInteractions(mock);
- }
-
@Test
public void shouldStubbingNotBeTreatedAsInteractionVerifyNoInteractions() {
when(mock.simpleMethod("one")).thenThrow(new RuntimeException());
diff --git a/src/test/java/org/mockitousage/basicapi/UsingVarargsTest.java b/src/test/java/org/mockitousage/basicapi/UsingVarargsTest.java
index 4e9fc59c53..551c63790a 100644
--- a/src/test/java/org/mockitousage/basicapi/UsingVarargsTest.java
+++ b/src/test/java/org/mockitousage/basicapi/UsingVarargsTest.java
@@ -121,18 +121,18 @@ public void shouldVerifyBooleanVarargs() {
}
@Test
- public void shouldVerifyWithAnyObject() {
+ public void shouldVerifyWithAny() {
Foo foo = Mockito.mock(Foo.class);
foo.varArgs("");
- Mockito.verify(foo).varArgs((String[]) Mockito.anyObject());
- Mockito.verify(foo).varArgs((String) Mockito.anyObject());
+ Mockito.verify(foo).varArgs((String[]) Mockito.any());
+ Mockito.verify(foo).varArgs((String) Mockito.any());
}
@Test
public void shouldVerifyWithNullVarArgArray() {
Foo foo = Mockito.mock(Foo.class);
foo.varArgs((String[]) null);
- Mockito.verify(foo).varArgs((String[]) Mockito.anyObject());
+ Mockito.verify(foo).varArgs((String[]) Mockito.any());
Mockito.verify(foo).varArgs((String[]) null);
}
@@ -175,7 +175,7 @@ public void shouldStubCorrectlyWhenDoubleStringAndMixedVarargsUsed() {
// See bug #157
public void shouldMatchEasilyEmptyVararg() throws Exception {
// when
- when(mock.foo(anyVararg())).thenReturn(-1);
+ when(mock.foo(any())).thenReturn(-1);
// then
assertEquals(-1, mock.foo());
diff --git a/src/test/java/org/mockitousage/bugs/ActualInvocationHasNullArgumentNPEBugTest.java b/src/test/java/org/mockitousage/bugs/ActualInvocationHasNullArgumentNPEBugTest.java
index c426e912b0..ac46998abb 100644
--- a/src/test/java/org/mockitousage/bugs/ActualInvocationHasNullArgumentNPEBugTest.java
+++ b/src/test/java/org/mockitousage/bugs/ActualInvocationHasNullArgumentNPEBugTest.java
@@ -20,7 +20,7 @@ public interface Fun {
public void shouldAllowPassingNullArgument() {
// given
Fun mockFun = mock(Fun.class);
- when(mockFun.doFun((String) anyObject())).thenReturn("value");
+ when(mockFun.doFun((String) any())).thenReturn("value");
// when
mockFun.doFun(null);
diff --git a/src/test/java/org/mockitousage/bugs/ClassCastExOnVerifyZeroInteractionsTest.java b/src/test/java/org/mockitousage/bugs/ClassCastExOnVerifyZeroInteractionsTest.java
index e9b9c114aa..060aa04cd0 100644
--- a/src/test/java/org/mockitousage/bugs/ClassCastExOnVerifyZeroInteractionsTest.java
+++ b/src/test/java/org/mockitousage/bugs/ClassCastExOnVerifyZeroInteractionsTest.java
@@ -5,7 +5,7 @@
package org.mockitousage.bugs;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoInteractions;
import org.junit.Test;
import org.mockito.exceptions.misusing.WrongTypeOfReturnValue;
@@ -29,7 +29,7 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
}
});
test.m1();
- verifyZeroInteractions(test);
+ verifyNoInteractions(test);
}
@Test(expected = WrongTypeOfReturnValue.class)
diff --git a/src/test/java/org/mockitousage/bugs/CompareMatcherTest.java b/src/test/java/org/mockitousage/bugs/CompareMatcherTest.java
index 240199509f..dd6db3fbb8 100644
--- a/src/test/java/org/mockitousage/bugs/CompareMatcherTest.java
+++ b/src/test/java/org/mockitousage/bugs/CompareMatcherTest.java
@@ -6,8 +6,8 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.AdditionalMatchers.leq;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Matchers.startsWith;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.ArgumentMatchers.startsWith;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
diff --git a/src/test/java/org/mockitousage/bugs/IOOBExceptionShouldNotBeThrownWhenNotCodingFluentlyTest.java b/src/test/java/org/mockitousage/bugs/IOOBExceptionShouldNotBeThrownWhenNotCodingFluentlyTest.java
index 3d8db84947..4885d24540 100644
--- a/src/test/java/org/mockitousage/bugs/IOOBExceptionShouldNotBeThrownWhenNotCodingFluentlyTest.java
+++ b/src/test/java/org/mockitousage/bugs/IOOBExceptionShouldNotBeThrownWhenNotCodingFluentlyTest.java
@@ -6,7 +6,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
diff --git a/src/test/java/org/mockitousage/bugs/NPEWithCertainMatchersTest.java b/src/test/java/org/mockitousage/bugs/NPEWithCertainMatchersTest.java
index 8864de8a22..108f5f114b 100644
--- a/src/test/java/org/mockitousage/bugs/NPEWithCertainMatchersTest.java
+++ b/src/test/java/org/mockitousage/bugs/NPEWithCertainMatchersTest.java
@@ -4,7 +4,7 @@
*/
package org.mockitousage.bugs;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
diff --git a/src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyObjectPicksUpExtraInvocationsTest.java b/src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyPicksUpExtraInvocationsTest.java
similarity index 80%
rename from src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyObjectPicksUpExtraInvocationsTest.java
rename to src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyPicksUpExtraInvocationsTest.java
index c9112fad8f..f6f4417c4a 100644
--- a/src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyObjectPicksUpExtraInvocationsTest.java
+++ b/src/test/java/org/mockitousage/bugs/varargs/VarargsAndAnyPicksUpExtraInvocationsTest.java
@@ -4,7 +4,7 @@
*/
package org.mockitousage.bugs.varargs;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -12,7 +12,7 @@
import org.mockito.Mock;
import org.mockitoutil.TestBase;
-public class VarargsAndAnyObjectPicksUpExtraInvocationsTest extends TestBase {
+public class VarargsAndAnyPicksUpExtraInvocationsTest extends TestBase {
public interface TableBuilder {
void newRow(String trAttributes, String... cells);
}
@@ -20,23 +20,23 @@ public interface TableBuilder {
@Mock TableBuilder table;
@Test
- public void shouldVerifyCorrectlyWithAnyVarargs() {
+ public void shouldVerifyCorrectlyWithAny() {
// when
table.newRow("qux", "foo", "bar", "baz");
table.newRow("abc", "def");
// then
- verify(table, times(2)).newRow(anyString(), (String[]) anyVararg());
+ verify(table, times(2)).newRow(anyString(), (String[]) any());
}
@Test
- public void shouldVerifyCorrectlyNumberOfInvocationsUsingAnyVarargAndEqualArgument() {
+ public void shouldVerifyCorrectlyNumberOfInvocationsUsingAnyAndEqualArgument() {
// when
table.newRow("x", "foo", "bar", "baz");
table.newRow("x", "def");
// then
- verify(table, times(2)).newRow(eq("x"), (String[]) anyVararg());
+ verify(table, times(2)).newRow(eq("x"), (String[]) any());
}
@Test
diff --git a/src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyObjectTest.java b/src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyTest.java
similarity index 63%
rename from src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyObjectTest.java
rename to src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyTest.java
index a77782b1d0..6e11a6a7fd 100644
--- a/src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyObjectTest.java
+++ b/src/test/java/org/mockitousage/bugs/varargs/VarargsNotPlayingWithAnyTest.java
@@ -5,9 +5,8 @@
package org.mockitousage.bugs.varargs;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.anyObject;
+import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.anyVararg;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -18,7 +17,7 @@
import org.mockitoutil.TestBase;
// see issue 62
-public class VarargsNotPlayingWithAnyObjectTest extends TestBase {
+public class VarargsNotPlayingWithAnyTest extends TestBase {
interface VarargMethod {
Object run(String... args);
@@ -27,27 +26,27 @@ interface VarargMethod {
@Mock VarargMethod mock;
@Test
- public void shouldMatchAnyVararg() {
+ public void shouldMatchAny() {
mock.run("a", "b");
verify(mock).run(anyString(), anyString());
- verify(mock).run((String) anyObject(), (String) anyObject());
+ verify(mock).run((String) any(), (String) any());
- verify(mock).run((String[]) anyVararg());
+ verify(mock).run((String[]) any());
verify(mock, never()).run();
verify(mock, never()).run(anyString(), eq("f"));
}
@Test
- public void shouldAllowUsingAnyObjectForVarArgs() {
+ public void shouldAllowUsinganyForVarArgs() {
mock.run("a", "b");
- verify(mock).run((String[]) anyObject());
+ verify(mock).run((String[]) any());
}
@Test
- public void shouldStubUsingAnyVarargs() {
- when(mock.run((String[]) anyVararg())).thenReturn("foo");
+ public void shouldStubUsingAny() {
+ when(mock.run((String[]) any())).thenReturn("foo");
assertEquals("foo", mock.run("a", "b"));
}
diff --git a/src/test/java/org/mockitousage/configuration/CustomizedAnnotationForSmartMockTest.java b/src/test/java/org/mockitousage/configuration/CustomizedAnnotationForSmartMockTest.java
deleted file mode 100644
index b487063c26..0000000000
--- a/src/test/java/org/mockitousage/configuration/CustomizedAnnotationForSmartMockTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.configuration;
-
-import static java.lang.annotation.ElementType.FIELD;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.verify;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.Set;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.configuration.MockitoConfiguration;
-import org.mockito.internal.configuration.InjectingAnnotationEngine;
-import org.mockitousage.IMethods;
-import org.mockitoutil.TestBase;
-
-/**
- * @see MockitoConfiguration#getAnnotationEngine() for the custom smartmock injection engine
- */
-public class CustomizedAnnotationForSmartMockTest extends TestBase {
-
- @SmartMock IMethods smartMock;
-
- @Test
- public void shouldUseCustomAnnotation() {
- assertEquals(
- "SmartMock should return empty String by default", "", smartMock.simpleMethod(1));
- verify(smartMock).simpleMethod(1);
- }
-
- @Target({FIELD})
- @Retention(RetentionPolicy.RUNTIME)
- public @interface SmartMock {}
-
- public static class CustomInjectingAnnotationEngine extends InjectingAnnotationEngine {
- @Override
- protected void onInjection(
- Object testClassInstance,
- Class> clazz,
- Set mockDependentFields,
- Set mocks) {
- for (Field field : clazz.getDeclaredFields()) {
- if (field.isAnnotationPresent(SmartMock.class)) {
- field.setAccessible(true);
- try {
- field.set(
- Modifier.isStatic(field.getModifiers()) ? null : testClassInstance,
- Mockito.mock(field.getType(), Mockito.RETURNS_SMART_NULLS));
- } catch (Exception exception) {
- throw new AssertionError(exception.getMessage());
- }
- }
- }
- }
- }
-}
diff --git a/src/test/java/org/mockitousage/customization/BDDMockitoTest.java b/src/test/java/org/mockitousage/customization/BDDMockitoTest.java
index 89ed109e5e..db29117be6 100644
--- a/src/test/java/org/mockitousage/customization/BDDMockitoTest.java
+++ b/src/test/java/org/mockitousage/customization/BDDMockitoTest.java
@@ -262,27 +262,11 @@ public void should_pass_for_expected_behavior_that_happened() {
then(mock).shouldHaveNoMoreInteractions();
}
- @Test
- public void should_validate_that_mock_did_not_have_any_interactions() {
- then(mock).shouldHaveZeroInteractions();
- }
-
@Test
public void should_validate_that_mock_had_no_interactions() {
then(mock).shouldHaveNoInteractions();
}
- @Test
- public void should_fail_when_mock_had_unwanted_interactions() {
- mock.booleanObjectReturningMethod();
-
- try {
- then(mock).shouldHaveZeroInteractions();
- fail("should have reported this interaction wasn't wanted");
- } catch (NoInteractionsWanted expected) {
- }
- }
-
@Test
public void should_fail_when_mock_had_more_interactions_than_expected() {
mock.booleanObjectReturningMethod();
@@ -336,7 +320,7 @@ public void should_pass_fluent_bdd_scenario() {
person.ride(bike);
then(person).should(times(2)).ride(bike);
- then(police).shouldHaveZeroInteractions();
+ then(police).shouldHaveNoInteractions();
}
@Test
diff --git a/src/test/java/org/mockitousage/debugging/NewMockito.java b/src/test/java/org/mockitousage/debugging/NewMockito.java
deleted file mode 100644
index 07cb625c95..0000000000
--- a/src/test/java/org/mockitousage/debugging/NewMockito.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.debugging;
-
-import org.mockito.Mockito;
-import org.mockito.MockitoDebugger;
-import org.mockito.internal.debugging.MockitoDebuggerImpl;
-
-// TODO get rid when debug() finally is out
-public class NewMockito extends Mockito {
-
- public static MockitoDebugger debug() {
- return new MockitoDebuggerImpl();
- }
-}
diff --git a/src/test/java/org/mockitousage/debugging/StubbingLookupListenerCallbackTest.java b/src/test/java/org/mockitousage/debugging/StubbingLookupListenerCallbackTest.java
index 5a5783388a..aa22e538a2 100644
--- a/src/test/java/org/mockitousage/debugging/StubbingLookupListenerCallbackTest.java
+++ b/src/test/java/org/mockitousage/debugging/StubbingLookupListenerCallbackTest.java
@@ -94,7 +94,7 @@ public void should_not_call_listener_when_mock_is_not_called() {
doReturn("java").when(mock).giveMeSomeString("coffee");
// then
- verifyZeroInteractions(listener);
+ verifyNoInteractions(listener);
}
@Test
@@ -170,7 +170,7 @@ public void should_clear_listeners() {
mock.doSomething("foo");
// then
- verifyZeroInteractions(listener, listener2);
+ verifyNoInteractions(listener, listener2);
}
@Test
diff --git a/src/test/java/org/mockitousage/examples/use/ExampleTest.java b/src/test/java/org/mockitousage/examples/use/ExampleTest.java
index ec2f407103..4a068e388c 100644
--- a/src/test/java/org/mockitousage/examples/use/ExampleTest.java
+++ b/src/test/java/org/mockitousage/examples/use/ExampleTest.java
@@ -89,7 +89,7 @@ public void shouldPersistRecalculatedArticle() {
InOrder inOrder = inOrder(mockDatabase, mockCalculator);
- inOrder.verify(mockCalculator).countNumberOfRelatedArticles((Article) anyObject());
- inOrder.verify(mockDatabase, atLeastOnce()).save((Article) anyObject());
+ inOrder.verify(mockCalculator).countNumberOfRelatedArticles(any());
+ inOrder.verify(mockDatabase, atLeastOnce()).save(any());
}
}
diff --git a/src/test/java/org/mockitousage/junitrunner/VerboseMockitoRunnerTest.java b/src/test/java/org/mockitousage/junitrunner/VerboseMockitoRunnerTest.java
deleted file mode 100644
index d6cfd6ef02..0000000000
--- a/src/test/java/org/mockitousage/junitrunner/VerboseMockitoRunnerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.junitrunner;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.*;
-
-import junit.framework.TestCase;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.JUnitCore;
-import org.junit.runner.Result;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.internal.exceptions.ExceptionIncludingMockitoWarnings;
-import org.mockito.runners.VerboseMockitoJUnitRunner;
-import org.mockitousage.IMethods;
-import org.mockitoutil.TestBase;
-
-// @RunWith(ConsoleSpammingMockitoJUnitRunner.class)
-@RunWith(VerboseMockitoJUnitRunner.class)
-// TODO
-public class VerboseMockitoRunnerTest extends TestBase {
-
- @Mock private IMethods mock;
-
- public static class NoWarnings {
-
- @Test
- @Ignore
- public void test() {
- IMethods mock = mock(IMethods.class);
- mock.simpleMethod(1);
- mock.otherMethod();
-
- verify(mock).simpleMethod(1);
- throw new RuntimeException("boo");
- }
- }
-
- public static class ContainsWarnings extends TestCase {
-
- public ContainsWarnings() {
- super("test");
- }
-
- public void testIgnored() {}
-
- public void _test() {
- IMethods mock = mock(IMethods.class);
-
- // some stubbing
- when(mock.simpleMethod(1)).thenReturn("foo");
- when(mock.otherMethod()).thenReturn("foo");
- when(mock.booleanObjectReturningMethod()).thenReturn(false);
-
- // stub called with different args:
- String ret = mock.simpleMethod(2);
-
- // assertion fails due to stub called with different args
- assertEquals("foo", ret);
- }
- }
-
- public void cleanStackTraces() {
- makeStackTracesClean();
- }
-
- @Test
- @Ignore
- public void shouldContainWarnings() throws Exception {
- // when
- Result result = new JUnitCore().run(new ContainsWarnings());
- // then
- assertEquals(1, result.getFailures().size());
- Throwable exception = result.getFailures().get(0).getException();
- assertTrue(exception instanceof ExceptionIncludingMockitoWarnings);
- }
-
- @Test
- @Ignore
- public void shouldNotContainWarnings() throws Exception {
- Result result = new JUnitCore().run(NoWarnings.class);
- assertEquals(1, result.getFailures().size());
- assertEquals("boo", result.getFailures().get(0).getException().getMessage());
- }
-}
diff --git a/src/test/java/org/mockitousage/matchers/AnyXMatchersAcceptNullsTest.java b/src/test/java/org/mockitousage/matchers/AnyXMatchersAcceptNullsTest.java
index 4701870a7d..2f93ea1b36 100644
--- a/src/test/java/org/mockitousage/matchers/AnyXMatchersAcceptNullsTest.java
+++ b/src/test/java/org/mockitousage/matchers/AnyXMatchersAcceptNullsTest.java
@@ -5,7 +5,7 @@
package org.mockitousage.matchers;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -31,29 +31,6 @@ public void shouldAcceptNullsInAnyMatcher() {
assertEquals(null, mock.forObject(null));
}
- @Test
- public void shouldAcceptNullsInAnyObjectMatcher() {
- when(mock.oneArg((Object) anyObject())).thenReturn("matched");
-
- assertEquals(null, mock.forObject(null));
- }
-
- @Test
- public void shouldNotAcceptNullInAnyXMatchers() {
- when(mock.oneArg(anyString())).thenReturn("0");
- when(mock.forList(anyListOf(String.class))).thenReturn("1");
- when(mock.forMap(anyMapOf(String.class, String.class))).thenReturn("2");
- when(mock.forCollection(anyCollectionOf(String.class))).thenReturn("3");
- when(mock.forSet(anySetOf(String.class))).thenReturn("4");
-
- assertEquals(null, mock.oneArg((Object) null));
- assertEquals(null, mock.oneArg((String) null));
- assertEquals(null, mock.forList(null));
- assertEquals(null, mock.forMap(null));
- assertEquals(null, mock.forCollection(null));
- assertEquals(null, mock.forSet(null));
- }
-
@Test
public void shouldNotAcceptNullInAllAnyPrimitiveWrapperMatchers() {
when(mock.forInteger(anyInt())).thenReturn("0");
diff --git a/src/test/java/org/mockitousage/matchers/CustomMatcherDoesYieldCCETest.java b/src/test/java/org/mockitousage/matchers/CustomMatcherDoesYieldCCETest.java
index 540f36a321..66e6a20109 100644
--- a/src/test/java/org/mockitousage/matchers/CustomMatcherDoesYieldCCETest.java
+++ b/src/test/java/org/mockitousage/matchers/CustomMatcherDoesYieldCCETest.java
@@ -5,7 +5,7 @@
package org.mockitousage.matchers;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.argThat;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.verify;
import org.junit.Test;
diff --git a/src/test/java/org/mockitousage/matchers/CustomMatchersTest.java b/src/test/java/org/mockitousage/matchers/CustomMatchersTest.java
index ddcb32a7b6..c8dc40de2a 100644
--- a/src/test/java/org/mockitousage/matchers/CustomMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/CustomMatchersTest.java
@@ -7,7 +7,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
diff --git a/src/test/java/org/mockitousage/matchers/GenericMatchersTest.java b/src/test/java/org/mockitousage/matchers/GenericMatchersTest.java
index 83a53bd1ce..c779c5bd4c 100644
--- a/src/test/java/org/mockitousage/matchers/GenericMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/GenericMatchersTest.java
@@ -4,7 +4,7 @@
*/
package org.mockitousage.matchers;
-import static org.mockito.Matchers.anyObject;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import java.util.Date;
@@ -29,7 +29,7 @@ private interface Foo {
@Test
public void shouldCompile() {
when(sorter.convertDate(new Date())).thenReturn("one");
- when(sorter.convertDate((Date) anyObject())).thenReturn("two");
+ when(sorter.convertDate((Date) any())).thenReturn("two");
// following requires warning suppression but allows setting anyList()
when(sorter.sort(ArgumentMatchers.anyList())).thenReturn(null);
diff --git a/src/test/java/org/mockitousage/matchers/InvalidUseOfMatchersTest.java b/src/test/java/org/mockitousage/matchers/InvalidUseOfMatchersTest.java
index 338c072324..ecd77cada4 100644
--- a/src/test/java/org/mockitousage/matchers/InvalidUseOfMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/InvalidUseOfMatchersTest.java
@@ -7,7 +7,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.when;
@@ -41,8 +41,8 @@ public void should_detect_wrong_number_of_matchers_when_stubbing() {
@Test
public void should_detect_stupid_use_of_matchers_when_verifying() {
mock.oneArg(true);
- eq("that's the stupid way");
- eq("of using matchers");
+ Object ignored = eq("that's the stupid way");
+ ignored = eq("of using matchers");
try {
Mockito.verify(mock).oneArg(true);
fail();
diff --git a/src/test/java/org/mockitousage/matchers/MatchersMixedWithRawArgumentsTest.java b/src/test/java/org/mockitousage/matchers/MatchersMixedWithRawArgumentsTest.java
index bea1960fd3..b90b547b67 100644
--- a/src/test/java/org/mockitousage/matchers/MatchersMixedWithRawArgumentsTest.java
+++ b/src/test/java/org/mockitousage/matchers/MatchersMixedWithRawArgumentsTest.java
@@ -4,8 +4,8 @@
*/
package org.mockitousage.matchers;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.verify;
import org.junit.Ignore;
@@ -31,7 +31,7 @@ public class MatchersMixedWithRawArgumentsTest extends TestBase {
// float: max-1
// 1. how objenesis deal with primitive arrays (like byte[])?
- // 2. Analisys of all matchers used by R2 project finished before anyObject() and so far proves
+ // 2. Analisys of all matchers used by R2 project finished before any() and so far proves
// it's a good idea.
@Ignore("prototyping new feature that allows to avoid eq() matchers when raw args passed")
diff --git a/src/test/java/org/mockitousage/matchers/MatchersTest.java b/src/test/java/org/mockitousage/matchers/MatchersTest.java
index 606cc76ec6..c266862977 100644
--- a/src/test/java/org/mockitousage/matchers/MatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/MatchersTest.java
@@ -20,7 +20,7 @@
import static org.mockito.AdditionalMatchers.not;
import static org.mockito.AdditionalMatchers.or;
import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyByte;
@@ -29,7 +29,6 @@
import static org.mockito.Mockito.anyFloat;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyLong;
-import static org.mockito.Mockito.anyObject;
import static org.mockito.Mockito.anyShort;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.contains;
@@ -48,12 +47,12 @@
import java.math.BigDecimal;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.RandomAccess;
import java.util.regex.Pattern;
import org.junit.Test;
+import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
import org.mockito.exceptions.verification.WantedButNotInvoked;
import org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent;
@@ -284,9 +283,7 @@ public void any_T_matcher() {
when(mock.oneArg(anyInt())).thenReturn("5");
when(mock.oneArg(anyLong())).thenReturn("6");
when(mock.oneArg(anyShort())).thenReturn("7");
- when(mock.oneArg((String) anyObject())).thenReturn("8");
- when(mock.oneArg(Mockito.anyObject())).thenReturn("9");
- when(mock.oneArg(any(RandomAccess.class))).thenReturn("10");
+ when(mock.oneArg(any(RandomAccess.class))).thenReturn("8");
assertEquals("0", mock.oneArg(true));
assertEquals("0", mock.oneArg(false));
@@ -298,12 +295,8 @@ public void any_T_matcher() {
assertEquals("5", mock.oneArg(1));
assertEquals("6", mock.oneArg(1L));
assertEquals("7", mock.oneArg((short) 1));
- assertEquals("8", mock.oneArg("Test"));
- assertEquals("9", mock.oneArg(new Object()));
- assertEquals("9", mock.oneArg(new HashMap()));
-
- assertEquals("10", mock.oneArg(new ArrayList()));
+ assertEquals("8", mock.oneArg(new ArrayList()));
}
@Test
@@ -455,14 +448,14 @@ public void null_matcher() {
@Test
public void null_matcher_for_primitive_wrappers() {
- when(mock.forBoolean(isNull(Boolean.class))).thenReturn("ok");
- when(mock.forInteger(isNull(Integer.class))).thenReturn("ok");
- when(mock.forLong(isNull(Long.class))).thenReturn("ok");
- when(mock.forByte(isNull(Byte.class))).thenReturn("ok");
- when(mock.forShort(isNull(Short.class))).thenReturn("ok");
- when(mock.forCharacter(isNull(Character.class))).thenReturn("ok");
- when(mock.forDouble(isNull(Double.class))).thenReturn("ok");
- when(mock.forFloat(isNull(Float.class))).thenReturn("ok");
+ when(mock.forBoolean(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forInteger(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forLong(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forByte(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forShort(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forCharacter(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forDouble(ArgumentMatchers.isNull())).thenReturn("ok");
+ when(mock.forFloat(ArgumentMatchers.isNull())).thenReturn("ok");
assertEquals("ok", mock.forBoolean(null));
assertEquals("ok", mock.forInteger(null));
diff --git a/src/test/java/org/mockitousage/matchers/MoreMatchersTest.java b/src/test/java/org/mockitousage/matchers/MoreMatchersTest.java
index 825902f7b4..c68d5482dd 100644
--- a/src/test/java/org/mockitousage/matchers/MoreMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/MoreMatchersTest.java
@@ -6,7 +6,7 @@
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -15,7 +15,6 @@
import org.assertj.core.api.ThrowableAssert;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent;
import org.mockitousage.IMethods;
import org.mockitoutil.TestBase;
@@ -31,14 +30,6 @@ public void should_help_out_with_unnecessary_casting() {
assertEquals("string", mock.objectArgMethod("foo"));
}
- @Test
- public void any_should_be_actual_alias_to_anyObject() {
- mock.simpleMethod((Object) null);
-
- verify(mock).simpleMethod(Mockito.any());
- verify(mock).simpleMethod(Mockito.anyObject());
- }
-
@Test
public void any_class_should_be_actual_alias_to_isA() {
mock.simpleMethod(new ArrayList());
@@ -66,65 +57,4 @@ public void call() {
})
.isInstanceOf(ArgumentsAreDifferent.class);
}
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_lists() {
- // Below yields compiler warning:
- // when(mock.listArgMethod(anyList())).thenReturn("list");
- when(mock.listArgMethod(anyListOf(String.class))).thenReturn("list");
-
- assertEquals("list", mock.listArgMethod(new LinkedList()));
- assertEquals("list", mock.listArgMethod(Collections.emptyList()));
- }
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_sets() {
- // Below yields compiler warning:
- // when(mock.setArgMethod(anySet())).thenReturn("set");
- when(mock.setArgMethod(anySetOf(String.class))).thenReturn("set");
-
- assertEquals("set", mock.setArgMethod(new HashSet()));
- assertEquals("set", mock.setArgMethod(Collections.emptySet()));
- }
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_maps() {
- // Below yields compiler warning:
- // when(mock.setArgMethod(anySet())).thenReturn("set");
- when(mock.forMap(anyMapOf(String.class, String.class))).thenReturn("map");
-
- assertEquals("map", mock.forMap(new HashMap()));
- assertEquals("map", mock.forMap(Collections.emptyMap()));
- }
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_collections() {
- // Below yields compiler warning:
- // when(mock.setArgMethod(anySet())).thenReturn("set");
- when(mock.collectionArgMethod(anyCollectionOf(String.class))).thenReturn("collection");
-
- assertEquals("collection", mock.collectionArgMethod(new ArrayList()));
- assertEquals("collection", mock.collectionArgMethod(Collections.emptyList()));
- }
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_iterables() {
- // Below yields compiler warning:
- // when(mock.setArgMethod(anySet())).thenReturn("set");
- when(mock.iterableArgMethod(anyIterableOf(String.class))).thenReturn("iterable");
-
- assertEquals("iterable", mock.iterableArgMethod(new ArrayList()));
- assertEquals("iterable", mock.iterableArgMethod(Collections.emptyList()));
- }
-
- @Test
- public void should_help_out_with_unnecessary_casting_of_nullity_checks() {
- when(mock.objectArgMethod(isNull(LinkedList.class))).thenReturn("string");
- when(mock.objectArgMethod(notNull(LinkedList.class))).thenReturn("string");
- when(mock.objectArgMethod(isNotNull(LinkedList.class))).thenReturn("string");
-
- assertEquals("string", mock.objectArgMethod(null));
- assertEquals("string", mock.objectArgMethod("foo"));
- assertEquals("string", mock.objectArgMethod("foo"));
- }
}
diff --git a/src/test/java/org/mockitousage/matchers/NewMatchersTest.java b/src/test/java/org/mockitousage/matchers/NewMatchersTest.java
index 6b26311ecb..69ff3c41ef 100644
--- a/src/test/java/org/mockitousage/matchers/NewMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/NewMatchersTest.java
@@ -29,51 +29,51 @@ public void setUp() {
@Test
public void shouldAllowAnyList() {
- when(mock.forList(anyListOf(String.class))).thenReturn("matched");
+ when(mock.forList(anyList())).thenReturn("matched");
assertEquals("matched", mock.forList(Arrays.asList("x", "y")));
assertEquals(null, mock.forList(null));
- verify(mock, times(1)).forList(anyListOf(String.class));
+ verify(mock, times(1)).forList(anyList());
}
@Test
public void shouldAllowAnyCollection() {
- when(mock.forCollection(anyCollectionOf(String.class))).thenReturn("matched");
+ when(mock.forCollection(anyCollection())).thenReturn("matched");
assertEquals("matched", mock.forCollection(Arrays.asList("x", "y")));
assertEquals(null, mock.forCollection(null));
- verify(mock, times(1)).forCollection(anyCollectionOf(String.class));
+ verify(mock, times(1)).forCollection(anyCollection());
}
@Test
public void shouldAllowAnyMap() {
- when(mock.forMap(anyMapOf(String.class, String.class))).thenReturn("matched");
+ when(mock.forMap(anyMap())).thenReturn("matched");
assertEquals("matched", mock.forMap(new HashMap()));
assertEquals(null, mock.forMap(null));
- verify(mock, times(1)).forMap(anyMapOf(String.class, String.class));
+ verify(mock, times(1)).forMap(anyMap());
}
@Test
public void shouldAllowAnySet() {
- when(mock.forSet(anySetOf(String.class))).thenReturn("matched");
+ when(mock.forSet(anySet())).thenReturn("matched");
assertEquals("matched", mock.forSet(new HashSet()));
assertEquals(null, mock.forSet(null));
- verify(mock, times(1)).forSet(anySetOf(String.class));
+ verify(mock, times(1)).forSet(anySet());
}
@Test
public void shouldAllowAnyIterable() {
- when(mock.forIterable(anyIterableOf(String.class))).thenReturn("matched");
+ when(mock.forIterable(anyIterable())).thenReturn("matched");
assertEquals("matched", mock.forIterable(new HashSet()));
assertEquals(null, mock.forIterable(null));
- verify(mock, times(1)).forIterable(anyIterableOf(String.class));
+ verify(mock, times(1)).forIterable(anyIterable());
}
}
diff --git a/src/test/java/org/mockitousage/matchers/ReflectionMatchersTest.java b/src/test/java/org/mockitousage/matchers/ReflectionMatchersTest.java
index a2d497e586..eac883ca0e 100644
--- a/src/test/java/org/mockitousage/matchers/ReflectionMatchersTest.java
+++ b/src/test/java/org/mockitousage/matchers/ReflectionMatchersTest.java
@@ -4,7 +4,7 @@
*/
package org.mockitousage.matchers;
-import static org.mockito.Matchers.refEq;
+import static org.mockito.ArgumentMatchers.refEq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
diff --git a/src/test/java/org/mockitousage/misuse/DescriptiveMessagesOnMisuseTest.java b/src/test/java/org/mockitousage/misuse/DescriptiveMessagesOnMisuseTest.java
index 196f9d0675..a61837462a 100644
--- a/src/test/java/org/mockitousage/misuse/DescriptiveMessagesOnMisuseTest.java
+++ b/src/test/java/org/mockitousage/misuse/DescriptiveMessagesOnMisuseTest.java
@@ -39,9 +39,6 @@ public void tryDescriptiveMessagesOnMisuse() {
// verifyNoMoreInteractions();
// verifyNoMoreInteractions(null);
// verifyNoMoreInteractions("");
- // verifyZeroInteractions();
- // verifyZeroInteractions(null);
- // verifyZeroInteractions("");
//
// inOrder();
// inOrder(null);
diff --git a/src/test/java/org/mockitousage/misuse/DetectingMisusedMatchersTest.java b/src/test/java/org/mockitousage/misuse/DetectingMisusedMatchersTest.java
index 04690b9dd9..a4b7294f2f 100644
--- a/src/test/java/org/mockitousage/misuse/DetectingMisusedMatchersTest.java
+++ b/src/test/java/org/mockitousage/misuse/DetectingMisusedMatchersTest.java
@@ -9,7 +9,7 @@
import static org.junit.Assume.assumeTrue;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyObject;
+import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.validateMockitoUsage;
import static org.mockito.Mockito.verify;
@@ -39,8 +39,8 @@ public void resetState() {
super.resetState();
}
- private void misplaced_anyObject_argument_matcher() {
- Object ignored = anyObject();
+ private void misplaced_any_argument_matcher() {
+ Object ignored = any();
}
private void misplaced_anyInt_argument_matcher() {
@@ -53,7 +53,7 @@ private void misplaced_anyBoolean_argument_matcher() {
@Test
public void should_fail_fast_when_argument_matchers_are_abused() {
- misplaced_anyObject_argument_matcher();
+ misplaced_any_argument_matcher();
try {
mock(IMethods.class);
fail();
@@ -68,7 +68,7 @@ public void should_report_argument_locations_when_argument_matchers_misused() {
Observer observer = mock(Observer.class);
misplaced_anyInt_argument_matcher();
- misplaced_anyObject_argument_matcher();
+ misplaced_any_argument_matcher();
misplaced_anyBoolean_argument_matcher();
observer.update(null, null);
@@ -80,7 +80,7 @@ public void should_report_argument_locations_when_argument_matchers_misused() {
.hasMessageContaining(
"DetectingMisusedMatchersTest.misplaced_anyInt_argument_matcher")
.hasMessageContaining(
- "DetectingMisusedMatchersTest.misplaced_anyObject_argument_matcher")
+ "DetectingMisusedMatchersTest.misplaced_any_argument_matcher")
.hasMessageContaining(
"DetectingMisusedMatchersTest.misplaced_anyBoolean_argument_matcher");
}
@@ -90,7 +90,7 @@ public void should_report_argument_locations_when_argument_matchers_misused() {
@Test
public void shouldSayUnfinishedVerificationButNotInvalidUseOfMatchers() {
assumeTrue("Does not apply for inline mocks", withFinal.getClass() != WithFinal.class);
- verify(withFinal).finalMethod(anyObject());
+ verify(withFinal).finalMethod(any());
try {
verify(withFinal);
fail();
diff --git a/src/test/java/org/mockitousage/misuse/ExplicitFrameworkValidationTest.java b/src/test/java/org/mockitousage/misuse/ExplicitFrameworkValidationTest.java
index 3fc1f56973..8e9e7599ef 100644
--- a/src/test/java/org/mockitousage/misuse/ExplicitFrameworkValidationTest.java
+++ b/src/test/java/org/mockitousage/misuse/ExplicitFrameworkValidationTest.java
@@ -5,7 +5,7 @@
package org.mockitousage.misuse;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyObject;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -46,7 +46,7 @@ public void shouldDetectUnfinishedStubbing() {
@Test
public void shouldDetectMisplacedArgumentMatcher() {
- anyObject();
+ Object ignored = any();
try {
Mockito.validateMockitoUsage();
fail();
diff --git a/src/test/java/org/mockitousage/misuse/InvalidUsageTest.java b/src/test/java/org/mockitousage/misuse/InvalidUsageTest.java
index db690b4cfe..ce418bfedb 100644
--- a/src/test/java/org/mockitousage/misuse/InvalidUsageTest.java
+++ b/src/test/java/org/mockitousage/misuse/InvalidUsageTest.java
@@ -31,11 +31,6 @@ public void shouldRequireArgumentsWhenVerifyingNoMoreInteractions() {
verifyNoMoreInteractions();
}
- @Test(expected = MockitoException.class)
- public void shouldRequireArgumentsWhenVerifyingZeroInteractions() {
- verifyZeroInteractions();
- }
-
@Test(expected = MockitoException.class)
public void shouldRequireArgumentsWhenVerifyingNoInteractions() {
verifyNoInteractions();
@@ -104,17 +99,6 @@ interface ObjectLikeInterface {
int hashCode();
}
- @Test
- public void shouldNotMockObjectMethodsOnInterface() throws Exception {
- ObjectLikeInterface inter = mock(ObjectLikeInterface.class);
-
- Object ignored = inter.equals(null);
- ignored = inter.toString();
- ignored = inter.hashCode();
-
- verifyZeroInteractions(inter);
- }
-
@Test
public void shouldNotMockObjectMethodsOnInterfaceVerifyNoInteractions() throws Exception {
ObjectLikeInterface inter = mock(ObjectLikeInterface.class);
@@ -126,17 +110,6 @@ public void shouldNotMockObjectMethodsOnInterfaceVerifyNoInteractions() throws E
verifyNoInteractions(inter);
}
- @Test
- public void shouldNotMockObjectMethodsOnClass() throws Exception {
- Object clazz = mock(ObjectLikeInterface.class);
-
- Object ignored = clazz.equals(null);
- ignored = clazz.toString();
- ignored = clazz.hashCode();
-
- verifyZeroInteractions(clazz);
- }
-
@Test
public void shouldNotMockObjectMethodsOnClassVerifyNoInteractions() throws Exception {
Object clazz = mock(ObjectLikeInterface.class);
diff --git a/src/test/java/org/mockitousage/plugins/MockitoPluginsTest.java b/src/test/java/org/mockitousage/plugins/MockitoPluginsTest.java
index a0b993dd07..dd5f390a53 100644
--- a/src/test/java/org/mockitousage/plugins/MockitoPluginsTest.java
+++ b/src/test/java/org/mockitousage/plugins/MockitoPluginsTest.java
@@ -5,13 +5,10 @@
package org.mockitousage.plugins;
import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.withSettings;
import org.junit.Test;
import org.mockito.Mockito;
-import org.mockito.internal.creation.instance.Instantiator;
import org.mockito.plugins.AnnotationEngine;
-import org.mockito.plugins.InstantiatorProvider;
import org.mockito.plugins.InstantiatorProvider2;
import org.mockito.plugins.MockMaker;
import org.mockito.plugins.MockitoLogger;
@@ -30,19 +27,8 @@ public void provides_built_in_plugins() {
assertNotNull(plugins.getDefaultPlugin(MockMaker.class));
assertNotNull(plugins.getDefaultPlugin(StackTraceCleanerProvider.class));
assertNotNull(plugins.getDefaultPlugin(PluginSwitch.class));
- assertNotNull(plugins.getDefaultPlugin(InstantiatorProvider.class));
assertNotNull(plugins.getDefaultPlugin(InstantiatorProvider2.class));
assertNotNull(plugins.getDefaultPlugin(AnnotationEngine.class));
assertNotNull(plugins.getDefaultPlugin(MockitoLogger.class));
}
-
- @SuppressWarnings("deprecation")
- @Test
- public void instantiator_provider_backwards_compatibility() {
- InstantiatorProvider provider = plugins.getDefaultPlugin(InstantiatorProvider.class);
- Instantiator instantiator =
- provider.getInstantiator(withSettings().build(MockitoPluginsTest.class));
-
- assertNotNull(instantiator.newInstance(MockitoPluginsTest.class));
- }
}
diff --git a/src/test/java/org/mockitousage/serialization/AcrossClassLoaderSerializationTest.java b/src/test/java/org/mockitousage/serialization/AcrossClassLoaderSerializationTest.java
index 2b2106755f..e79895b8c6 100644
--- a/src/test/java/org/mockitousage/serialization/AcrossClassLoaderSerializationTest.java
+++ b/src/test/java/org/mockitousage/serialization/AcrossClassLoaderSerializationTest.java
@@ -11,6 +11,7 @@
import java.util.List;
import java.util.concurrent.Callable;
+import net.bytebuddy.ClassFileVersion;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -31,6 +32,10 @@ public void reproduce_CCE_by_creating_a_mock_with_IMethods_before() throws Excep
@Test
public void check_that_mock_can_be_serialized_in_a_classloader_and_deserialized_in_another()
throws Exception {
+ // No longer supported starting with JDK 16+
+ if (!ClassFileVersion.ofThisVm().isAtMost(ClassFileVersion.JAVA_V16)) {
+ return;
+ }
byte[] bytes = create_mock_and_serialize_it_in_class_loader_A();
Object the_deserialized_mock = read_stream_and_deserialize_it_in_class_loader_B(bytes);
diff --git a/src/test/java/org/mockitousage/spies/StubbingSpiesDoesNotYieldNPETest.java b/src/test/java/org/mockitousage/spies/StubbingSpiesDoesNotYieldNPETest.java
index 89bdd66712..da467887de 100644
--- a/src/test/java/org/mockitousage/spies/StubbingSpiesDoesNotYieldNPETest.java
+++ b/src/test/java/org/mockitousage/spies/StubbingSpiesDoesNotYieldNPETest.java
@@ -4,7 +4,7 @@
*/
package org.mockitousage.spies;
-import static org.mockito.Matchers.*;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.spy;
import java.util.Collection;
diff --git a/src/test/java/org/mockitousage/stacktrace/ModellingDescriptiveMessagesTest.java b/src/test/java/org/mockitousage/stacktrace/ModellingDescriptiveMessagesTest.java
index ba6aed4474..03d99beda9 100644
--- a/src/test/java/org/mockitousage/stacktrace/ModellingDescriptiveMessagesTest.java
+++ b/src/test/java/org/mockitousage/stacktrace/ModellingDescriptiveMessagesTest.java
@@ -158,7 +158,7 @@ public void shouldMentionFinalAndObjectMethodsWhenVerifying() {
@Test
public void shouldMentionFinalAndObjectMethodsWhenMisplacedArgumentMatcher() {
- when(mock.equals(anyObject())).thenReturn(false);
+ when(mock.equals(any())).thenReturn(false);
}
@Test
diff --git a/src/test/java/org/mockitousage/stacktrace/StackTraceFilteringTest.java b/src/test/java/org/mockitousage/stacktrace/StackTraceFilteringTest.java
index ec3a7335eb..1734e53a5b 100644
--- a/src/test/java/org/mockitousage/stacktrace/StackTraceFilteringTest.java
+++ b/src/test/java/org/mockitousage/stacktrace/StackTraceFilteringTest.java
@@ -9,7 +9,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import static org.mockitoutil.Conditions.firstMethodInStackTrace;
@@ -64,18 +63,6 @@ public void shouldFilterStackTraceOnVerifyNoMoreInteractions() {
}
}
- @Test
- public void shouldFilterStackTraceOnVerifyZeroInteractions() {
- mock.oneArg(true);
- try {
- verifyZeroInteractions(mock);
- fail();
- } catch (NoInteractionsWanted e) {
- Assertions.assertThat(e)
- .has(firstMethodInStackTrace("shouldFilterStackTraceOnVerifyZeroInteractions"));
- }
- }
-
@Test
public void shouldFilterStackTraceOnVerifyNoInteractions() {
mock.oneArg(true);
diff --git a/src/test/java/org/mockitousage/stubbing/BasicStubbingTest.java b/src/test/java/org/mockitousage/stubbing/BasicStubbingTest.java
index 375a204d51..15e4346526 100644
--- a/src/test/java/org/mockitousage/stubbing/BasicStubbingTest.java
+++ b/src/test/java/org/mockitousage/stubbing/BasicStubbingTest.java
@@ -64,7 +64,7 @@ public void should_stubbing_not_be_treated_as_interaction() {
when(mock.simpleMethod("one")).thenThrow(new RuntimeException());
doThrow(new RuntimeException()).when(mock).simpleMethod("two");
- verifyZeroInteractions(mock);
+ verifyNoInteractions(mock);
}
@Test
@@ -85,7 +85,7 @@ public void unfinished_stubbing_cleans_up_the_state() {
}
// anything that can cause state validation
- verifyZeroInteractions(mock);
+ verifyNoInteractions(mock);
}
@Test
diff --git a/src/test/java/org/mockitousage/verification/AtMostXVerificationTest.java b/src/test/java/org/mockitousage/verification/AtMostXVerificationTest.java
index 47c78f72ec..f6c08ac8bd 100644
--- a/src/test/java/org/mockitousage/verification/AtMostXVerificationTest.java
+++ b/src/test/java/org/mockitousage/verification/AtMostXVerificationTest.java
@@ -22,6 +22,7 @@
import org.mockito.exceptions.base.MockitoException;
import org.mockito.exceptions.verification.MoreThanAllowedActualInvocations;
import org.mockito.exceptions.verification.NoInteractionsWanted;
+import org.mockito.verification.VerificationMode;
import org.mockitoutil.TestBase;
public class AtMostXVerificationTest extends TestBase {
@@ -115,6 +116,13 @@ public void shouldDetectUnverifiedInMarkInteractionsAsVerified() throws Exceptio
}
}
+ @Test
+ public void should_return_formatted_output_from_toString_method() {
+ VerificationMode atMost = atMost(3);
+
+ assertThat(atMost).hasToString("Wanted invocations count: at most 3");
+ }
+
private void undesiredInteraction() {
mock.add("");
}
diff --git a/src/test/java/org/mockitousage/verification/BasicVerificationInOrderTest.java b/src/test/java/org/mockitousage/verification/BasicVerificationInOrderTest.java
index f424fab706..b0c4b2d236 100644
--- a/src/test/java/org/mockitousage/verification/BasicVerificationInOrderTest.java
+++ b/src/test/java/org/mockitousage/verification/BasicVerificationInOrderTest.java
@@ -261,11 +261,6 @@ public void shouldFailOnVerifyNoMoreInteractions() {
}
}
- @Test(expected = NoInteractionsWanted.class)
- public void shouldFailOnVerifyZeroInteractions() {
- verifyZeroInteractions(mockOne);
- }
-
@Test(expected = NoInteractionsWanted.class)
public void shouldFailOnVerifyNoInteractions() {
verifyNoInteractions(mockOne);
diff --git a/src/test/java/org/mockitousage/verification/CustomVerificationTest.java b/src/test/java/org/mockitousage/verification/CustomVerificationTest.java
deleted file mode 100644
index 766bb1d4a5..0000000000
--- a/src/test/java/org/mockitousage/verification/CustomVerificationTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2007 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.verification;
-
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.verify;
-
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.exceptions.base.MockitoAssertionError;
-import org.mockito.internal.invocation.InvocationMatcher;
-import org.mockito.internal.verification.api.VerificationData;
-import org.mockito.invocation.Invocation;
-import org.mockito.verification.VerificationMode;
-import org.mockitousage.IMethods;
-import org.mockitoutil.TestBase;
-
-public class CustomVerificationTest extends TestBase {
-
- @Mock IMethods mock;
-
- @Test
- public void custom_verification_with_old_api() {
- // given:
- mock.simpleMethod("a", 10);
-
- // expect:
- verify(mock, ignoreParametersUsingOldApi()).simpleMethod();
-
- try {
- verify(mock, ignoreParametersUsingOldApi()).otherMethod();
- fail();
- } catch (MockitoAssertionError e) {
- }
- }
-
- // Old api still supported, see https://github.com/mockito/mockito/issues/730
- private VerificationMode ignoreParametersUsingOldApi() {
- return new VerificationMode() {
- public void verify(VerificationData data) {
- // use old api
- InvocationMatcher target = data.getWanted();
-
- // sanity check the new api
- if (data.getTarget() != target) {
- throw new RuntimeException("Sanity check");
- }
-
- // look for the relevant invocation and exit if found
- for (Invocation invocation : data.getAllInvocations()) {
- if (target.getInvocation()
- .getMethod()
- .getName()
- .equals(invocation.getMethod().getName())) {
- return;
- }
- }
-
- // verification failed!
- throw new MockitoAssertionError(
- "Expected method with name: "
- + target
- + " not found in:\n"
- + data.getAllInvocations());
- }
-
- public VerificationMode description(String description) {
- return this;
- }
- };
- }
-}
diff --git a/src/test/java/org/mockitousage/verification/DescriptiveMessagesWhenVerificationFailsTest.java b/src/test/java/org/mockitousage/verification/DescriptiveMessagesWhenVerificationFailsTest.java
index 94f660284c..bae7c31df7 100644
--- a/src/test/java/org/mockitousage/verification/DescriptiveMessagesWhenVerificationFailsTest.java
+++ b/src/test/java/org/mockitousage/verification/DescriptiveMessagesWhenVerificationFailsTest.java
@@ -180,26 +180,6 @@ public void should_print_first_unexpected_invocation() {
}
}
- @Test
- public void should_print_first_unexpected_invocation_when_verifying_zero_interactions() {
- mock.twoArgumentMethod(1, 2);
- mock.threeArgumentMethod(1, "2", "3");
-
- try {
- verifyZeroInteractions(mock);
- fail();
- } catch (NoInteractionsWanted e) {
- String expected = "\n" + "No interactions wanted here:" + "\n" + "-> at";
-
- assertThat(e).hasMessageContaining(expected);
-
- String expectedCause =
- "\n" + "But found this interaction on mock '" + mock + "':" + "\n" + "-> at";
-
- assertThat(e).hasMessageContaining(expectedCause);
- }
- }
-
@Test
public void should_print_first_unexpected_invocation_when_verifying_no_interactions() {
mock.twoArgumentMethod(1, 2);
diff --git a/src/test/java/org/mockitousage/verification/NoMoreInteractionsVerificationTest.java b/src/test/java/org/mockitousage/verification/NoMoreInteractionsVerificationTest.java
index 367975dc4a..72c75a909b 100644
--- a/src/test/java/org/mockitousage/verification/NoMoreInteractionsVerificationTest.java
+++ b/src/test/java/org/mockitousage/verification/NoMoreInteractionsVerificationTest.java
@@ -50,29 +50,6 @@ public void shouldVerifyWhenWantedNumberOfInvocationsUsed() throws Exception {
verifyNoMoreInteractions(mock);
}
- @Test
- public void shouldVerifyNoInteractionsAsManyTimesAsYouWant() throws Exception {
- verifyNoMoreInteractions(mock);
- verifyNoMoreInteractions(mock);
-
- verifyZeroInteractions(mock);
- verifyZeroInteractions(mock);
-
- verifyNoInteractions(mock);
- verifyNoInteractions(mock);
- }
-
- @Test
- public void shouldFailZeroInteractionsVerification() throws Exception {
- mock.clear();
-
- try {
- verifyZeroInteractions(mock);
- fail();
- } catch (NoInteractionsWanted e) {
- }
- }
-
@Test
public void shouldFailNoMoreInteractionsVerification() throws Exception {
mock.clear();
@@ -136,7 +113,7 @@ public void shouldVerifyOneMockButFailOnOther() throws Exception {
verifyNoMoreInteractions(list);
try {
- verifyZeroInteractions(map);
+ verifyNoInteractions(map);
fail();
} catch (NoInteractionsWanted e) {
}
diff --git a/src/test/java/org/mockitousage/verification/OnlyVerificationTest.java b/src/test/java/org/mockitousage/verification/OnlyVerificationTest.java
index 02015e0e2a..94eafe612c 100644
--- a/src/test/java/org/mockitousage/verification/OnlyVerificationTest.java
+++ b/src/test/java/org/mockitousage/verification/OnlyVerificationTest.java
@@ -4,8 +4,9 @@
*/
package org.mockitousage.verification;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.verify;
@@ -15,6 +16,7 @@
import org.mockito.Mock;
import org.mockito.exceptions.verification.NoInteractionsWanted;
import org.mockito.exceptions.verification.WantedButNotInvoked;
+import org.mockito.verification.VerificationMode;
import org.mockitoutil.TestBase;
public class OnlyVerificationTest extends TestBase {
@@ -85,4 +87,11 @@ public void shouldVerifyMethodWasInvokedExclusivelyWhenTwoMocksInUse() {
verify(mock, only()).clear();
verify(mock2, only()).get(0);
}
+
+ @Test
+ public void should_return_formatted_output_from_toString_method() {
+ VerificationMode only = only();
+
+ assertThat(only).hasToString("Wanted invocations count: 1 and no other method invoked");
+ }
}
diff --git a/src/test/java/org/mockitousage/verification/PrintingVerboseTypesWithArgumentsTest.java b/src/test/java/org/mockitousage/verification/PrintingVerboseTypesWithArgumentsTest.java
index 42f644d2a9..472e18475c 100644
--- a/src/test/java/org/mockitousage/verification/PrintingVerboseTypesWithArgumentsTest.java
+++ b/src/test/java/org/mockitousage/verification/PrintingVerboseTypesWithArgumentsTest.java
@@ -7,7 +7,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
diff --git a/src/test/java/org/mockitousage/verification/VerificationOnMultipleMocksUsingMatchersTest.java b/src/test/java/org/mockitousage/verification/VerificationOnMultipleMocksUsingMatchersTest.java
index a543d38988..77e7e46ec5 100644
--- a/src/test/java/org/mockitousage/verification/VerificationOnMultipleMocksUsingMatchersTest.java
+++ b/src/test/java/org/mockitousage/verification/VerificationOnMultipleMocksUsingMatchersTest.java
@@ -29,10 +29,10 @@ public void shouldVerifyUsingMatchers() throws Exception {
map.put("test", 100);
map.put("test two", 200);
- verify(list).add(anyObject());
+ verify(list).add(any());
verify(list).add(anyInt(), eq("test two"));
- verify(map, times(2)).put(anyObject(), anyObject());
+ verify(map, times(2)).put(any(), any());
verify(map).put(eq("test two"), eq(200));
verifyNoMoreInteractions(list, map);
@@ -55,10 +55,9 @@ public void shouldVerifyMultipleMocks() throws Exception {
verify(list, times(1)).add("two");
verify(list, times(0)).add("three");
- verify(map, times(2)).put(anyObject(), anyInt());
+ verify(map, times(2)).put(any(), anyInt());
verifyNoMoreInteractions(list, map);
- verifyZeroInteractions(set);
verifyNoInteractions(set);
}
}
diff --git a/src/test/java/org/mockitousage/verification/VerificationUsingMatchersTest.java b/src/test/java/org/mockitousage/verification/VerificationUsingMatchersTest.java
index 85d37dd924..6e916b7124 100644
--- a/src/test/java/org/mockitousage/verification/VerificationUsingMatchersTest.java
+++ b/src/test/java/org/mockitousage/verification/VerificationUsingMatchersTest.java
@@ -7,14 +7,18 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.fail;
-import static org.mockito.AdditionalMatchers.*;
-import static org.mockito.Matchers.*;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.ArgumentMatchers.contains;
+import static org.mockito.AdditionalMatchers.geq;
+import static org.mockito.AdditionalMatchers.leq;
+import static org.mockito.AdditionalMatchers.and;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.Matchers;
import org.mockito.Mockito;
import org.mockito.exceptions.verification.WantedButNotInvoked;
import org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent;
@@ -68,8 +72,7 @@ public void shouldVerifyUsingMixedMatchers() {
try {
verify(mock)
- .threeArgumentMethod(
- and(geq(7), leq(10)), isA(String.class), Matchers.contains("123"));
+ .threeArgumentMethod(and(geq(7), leq(10)), isA(String.class), contains("123"));
fail();
} catch (ArgumentsAreDifferent e) {
}
@@ -78,8 +81,7 @@ public void shouldVerifyUsingMixedMatchers() {
try {
verify(mock)
- .threeArgumentMethod(
- and(geq(7), leq(10)), isA(String.class), Matchers.contains("123"));
+ .threeArgumentMethod(and(geq(7), leq(10)), isA(String.class), contains("123"));
fail();
} catch (ArgumentsAreDifferent e) {
}
@@ -88,16 +90,13 @@ public void shouldVerifyUsingMixedMatchers() {
try {
verify(mock)
- .threeArgumentMethod(
- and(geq(7), leq(10)), isA(String.class), Matchers.contains("123"));
+ .threeArgumentMethod(and(geq(7), leq(10)), isA(String.class), contains("123"));
fail();
} catch (ArgumentsAreDifferent e) {
}
mock.threeArgumentMethod(8, "", "123");
- verify(mock)
- .threeArgumentMethod(
- and(geq(7), leq(10)), isA(String.class), Matchers.contains("123"));
+ verify(mock).threeArgumentMethod(and(geq(7), leq(10)), isA(String.class), contains("123"));
}
}
diff --git a/src/test/java/org/mockitousage/verification/VerificationWithAfterTest.java b/src/test/java/org/mockitousage/verification/VerificationWithAfterTest.java
index 4fb65530b1..0d3f40be44 100644
--- a/src/test/java/org/mockitousage/verification/VerificationWithAfterTest.java
+++ b/src/test/java/org/mockitousage/verification/VerificationWithAfterTest.java
@@ -6,6 +6,7 @@
import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.after;
import static org.mockito.Mockito.verify;
@@ -22,7 +23,9 @@
import org.mockito.exceptions.verification.MoreThanAllowedActualInvocations;
import org.mockito.exceptions.verification.NoInteractionsWanted;
import org.mockito.exceptions.verification.TooManyActualInvocations;
+import org.mockito.internal.verification.DummyVerificationMode;
import org.mockito.junit.MockitoRule;
+import org.mockito.verification.VerificationMode;
import org.mockitousage.IMethods;
import org.mockitoutil.Stopwatch;
import org.mockitoutil.async.AsyncTesting;
@@ -301,4 +304,29 @@ public void call() {
// using generous number to avoid timing issues
watch.assertElapsedTimeIsLessThan(2000, MILLISECONDS);
}
+
+ @Test
+ public void should_return_formatted_output_from_toString_when_created_with_factory_method() {
+ VerificationMode after = after(3);
+
+ assertThat(after).hasToString("Wanted after 3 ms: [Wanted invocations count: 1]");
+ }
+
+ @Test
+ public void should_return_formatted_output_from_toString_using_wrapped_verification_mode() {
+ org.mockito.verification.After after =
+ new org.mockito.verification.After(10, new DummyVerificationMode());
+
+ assertThat(after).hasToString("Wanted after 10 ms: [Dummy verification mode]");
+ }
+
+ @Test
+ public void
+ should_return_formatted_output_from_toString_when_chaining_other_verification_mode() {
+ VerificationMode afterAndOnly = after(5).only();
+
+ assertThat(afterAndOnly)
+ .hasToString(
+ "Wanted after 5 ms: [Wanted invocations count: 1 and no other method invoked]");
+ }
}
diff --git a/src/test/java/org/mockitousage/verification/VerificationWithTimeoutTest.java b/src/test/java/org/mockitousage/verification/VerificationWithTimeoutTest.java
index ee876e49f8..b51aafd980 100644
--- a/src/test/java/org/mockitousage/verification/VerificationWithTimeoutTest.java
+++ b/src/test/java/org/mockitousage/verification/VerificationWithTimeoutTest.java
@@ -4,6 +4,7 @@
*/
package org.mockitousage.verification;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.after;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
@@ -21,7 +22,10 @@
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.exceptions.verification.TooFewActualInvocations;
+import org.mockito.internal.verification.DummyVerificationMode;
import org.mockito.junit.MockitoRule;
+import org.mockito.verification.Timeout;
+import org.mockito.verification.VerificationMode;
import org.mockitousage.IMethods;
import org.mockitoutil.Stopwatch;
import org.mockitoutil.async.AsyncTesting;
@@ -172,6 +176,31 @@ public void should_verify_with_only() {
verify(mock, timeout(100).only()).oneArg('c');
}
+ @Test
+ public void should_return_formatted_output_from_toString_when_created_with_factory_method() {
+ VerificationMode timeout = timeout(7);
+
+ assertThat(timeout).hasToString("Wanted after at most 7 ms: [Wanted invocations count: 1]");
+ }
+
+ @Test
+ public void should_return_formatted_output_from_toString_using_wrapped_verification_mode() {
+ VerificationMode timeoutAndAtLeastOnce = new Timeout(9, new DummyVerificationMode());
+
+ assertThat(timeoutAndAtLeastOnce)
+ .hasToString("Wanted after at most 9 ms: [Dummy verification mode]");
+ }
+
+ @Test
+ public void
+ should_return_formatted_output_from_toString_when_chaining_other_verification_mode() {
+ VerificationMode timeoutAndOnly = timeout(7).only();
+
+ assertThat(timeoutAndOnly)
+ .hasToString(
+ "Wanted after at most 7 ms: [Wanted invocations count: 1 and no other method invoked]");
+ }
+
@Test
@Ignore("not testable, probably timeout().only() does not make sense")
public void should_verify_with_only_and_fail() {
diff --git a/src/test/java/org/mockitoutil/SimpleSerializationUtil.java b/src/test/java/org/mockitoutil/SimpleSerializationUtil.java
index 65fe8421a1..fd336e0348 100644
--- a/src/test/java/org/mockitoutil/SimpleSerializationUtil.java
+++ b/src/test/java/org/mockitoutil/SimpleSerializationUtil.java
@@ -6,7 +6,12 @@
import static org.junit.Assert.assertNotNull;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
public abstract class SimpleSerializationUtil {
diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle
index 8f86eabb98..4cbd7dd38d 100644
--- a/subprojects/android/android.gradle
+++ b/subprojects/android/android.gradle
@@ -3,8 +3,8 @@ description = "Mockito for Android"
apply from: "$rootDir/gradle/java-library.gradle"
dependencies {
- compile project.rootProject
- compile libraries.bytebuddyandroid
+ api project.rootProject
+ implementation libraries.bytebuddyandroid
}
tasks.javadoc.enabled = false
diff --git a/subprojects/deprecatedPluginsTest/deprecatedPluginsTest.gradle b/subprojects/deprecatedPluginsTest/deprecatedPluginsTest.gradle
deleted file mode 100644
index d685a4dc0e..0000000000
--- a/subprojects/deprecatedPluginsTest/deprecatedPluginsTest.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-apply from: "$rootDir/gradle/dependencies.gradle"
-
-apply plugin: 'java'
-description = "End-to-end tests for deprecated Mockito plugins."
-
-dependencies {
- testCompile project(":")
- testCompile libraries.junit4
-}
diff --git a/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/DeprecatedInstantiatorProviderTest.java b/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/DeprecatedInstantiatorProviderTest.java
deleted file mode 100644
index 2ccd170362..0000000000
--- a/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/DeprecatedInstantiatorProviderTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.plugins;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.creation.instance.InstantiationException;
-import org.mockito.exceptions.base.MockitoException;
-import org.mockito.plugins.InstantiatorProvider;
-
-import static java.util.Arrays.asList;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
-
-public class DeprecatedInstantiatorProviderTest {
-
- @Test
- public void provides_default_instance_for_deprecated_plugin() {
- InstantiatorProvider plugin = Mockito.framework().getPlugins().getDefaultPlugin(InstantiatorProvider.class);
- assertNotNull(plugin);
- }
-
- @SuppressWarnings("CheckReturnValue")
- @Test
- public void uses_custom_instantiator_provider() {
- MyDeprecatedInstantiatorProvider.invokedFor.remove();
- mock(DeprecatedInstantiatorProviderTest.class);
- assertEquals(MyDeprecatedInstantiatorProvider.invokedFor.get(), asList(DeprecatedInstantiatorProviderTest.class));
- }
-
- @SuppressWarnings("CheckReturnValue")
- @Test(expected = InstantiationException.class)
- public void exception_while_instantiating() throws Throwable {
- MyDeprecatedInstantiatorProvider.shouldExcept.set(true);
- try {
- mock(DeprecatedInstantiatorProviderTest.class);
- } catch (MockitoException e) {
- throw e.getCause();
- } finally {
- MyDeprecatedInstantiatorProvider.shouldExcept.remove();
- }
- }
-}
diff --git a/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/MyDeprecatedInstantiatorProvider.java b/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/MyDeprecatedInstantiatorProvider.java
deleted file mode 100644
index a15dc41a77..0000000000
--- a/subprojects/deprecatedPluginsTest/src/test/java/org/mockitousage/plugins/MyDeprecatedInstantiatorProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2018 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.plugins;
-
-import org.mockito.Mockito;
-import org.mockito.internal.creation.instance.InstantiationException;
-import org.mockito.internal.creation.instance.Instantiator;
-import org.mockito.mock.MockCreationSettings;
-import org.mockito.plugins.InstantiatorProvider;
-
-import java.util.LinkedList;
-import java.util.List;
-
-@SuppressWarnings("deprecation")
-public class MyDeprecatedInstantiatorProvider implements InstantiatorProvider {
- static ThreadLocal shouldExcept = new ThreadLocal<>();
- static ThreadLocal> invokedFor = new ThreadLocal<>();
-
- @Override
- public Instantiator getInstantiator(MockCreationSettings> settings) {
- if (shouldExcept.get() != null) {
- throw new InstantiationException(null, null);
- }
-
- if (invokedFor.get() == null) {
- invokedFor.set(new LinkedList<>());
- }
- invokedFor.get().add(settings.getTypeToMock());
-
- return Mockito.framework().getPlugins().getDefaultPlugin(InstantiatorProvider.class).getInstantiator(settings);
- }
-}
diff --git a/subprojects/deprecatedPluginsTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider b/subprojects/deprecatedPluginsTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider
deleted file mode 100644
index 2c038d27b6..0000000000
--- a/subprojects/deprecatedPluginsTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider
+++ /dev/null
@@ -1 +0,0 @@
-org.mockitousage.plugins.MyDeprecatedInstantiatorProvider
diff --git a/subprojects/errorprone/errorprone.gradle b/subprojects/errorprone/errorprone.gradle
index f547d2ee28..e3ef7a7b77 100644
--- a/subprojects/errorprone/errorprone.gradle
+++ b/subprojects/errorprone/errorprone.gradle
@@ -7,11 +7,11 @@ dependencies {
compileOnly libraries.autoservice
annotationProcessor libraries.autoservice
- compile project.rootProject
- compile libraries.errorprone
+ implementation project.rootProject
+ implementation libraries.errorprone
- testCompile 'junit:junit:4.13-beta-1'
- testCompile libraries.errorproneTestApi
+ testImplementation 'junit:junit:4.13-beta-1'
+ testImplementation libraries.errorproneTestApi
}
test {
diff --git a/subprojects/extTest/extTest.gradle b/subprojects/extTest/extTest.gradle
index 61c26c1d67..af9ce66c08 100644
--- a/subprojects/extTest/extTest.gradle
+++ b/subprojects/extTest/extTest.gradle
@@ -8,14 +8,14 @@ repositories {
}
dependencies {
- testCompile project.rootProject
- testCompile project(":junit-jupiter")
- testCompile project(path: ':', configuration: 'testUtil')
- testCompile libraries.junit4
- testCompile libraries.assertj
- testCompile libraries.junitJupiterApi
- testRuntime libraries.junitJupiterEngine
- testRuntime libraries.junitVintageEngine
+ testImplementation project.rootProject
+ testImplementation project(":junit-jupiter")
+ testImplementation project(path: ':', configuration: 'testUtil')
+ testImplementation libraries.junit4
+ testImplementation libraries.assertj
+ testImplementation libraries.junitJupiterApi
+ testRuntimeOnly libraries.junitJupiterEngine
+ testRuntimeOnly libraries.junitVintageEngine
}
tasks.withType(Test) {
diff --git a/subprojects/extTest/src/test/java/org/mockitousage/plugins/instantiator/MyInstantiatorProvider.java b/subprojects/extTest/src/test/java/org/mockitousage/plugins/instantiator/MyInstantiatorProvider.java
deleted file mode 100644
index 628c0fcc89..0000000000
--- a/subprojects/extTest/src/test/java/org/mockitousage/plugins/instantiator/MyInstantiatorProvider.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2018 Mockito contributors
- * This program is made available under the terms of the MIT License.
- */
-package org.mockitousage.plugins.instantiator;
-
-import org.mockito.internal.creation.instance.Instantiator;
-import org.mockito.mock.MockCreationSettings;
-import org.mockito.plugins.InstantiatorProvider;
-
-@SuppressWarnings("deprecation")
-public class MyInstantiatorProvider implements InstantiatorProvider {
- @Override
- public Instantiator getInstantiator(MockCreationSettings> settings) {
- throw new RuntimeException("Should never be called as there is InstantiatorProvider2 plugin");
- }
-}
diff --git a/subprojects/extTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider b/subprojects/extTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider
deleted file mode 100644
index 68bb9b8365..0000000000
--- a/subprojects/extTest/src/test/resources/mockito-extensions/org.mockito.plugins.InstantiatorProvider
+++ /dev/null
@@ -1 +0,0 @@
-org.mockitousage.plugins.instantiator.MyInstantiatorProvider
diff --git a/subprojects/groovyTest/groovyTest.gradle b/subprojects/groovyTest/groovyTest.gradle
index eceb4cdf79..4b86c87260 100644
--- a/subprojects/groovyTest/groovyTest.gradle
+++ b/subprojects/groovyTest/groovyTest.gradle
@@ -5,7 +5,7 @@ description = "Integration test for using Mockito from Groovy."
apply from: "$rootDir/gradle/dependencies.gradle"
dependencies {
- testCompile project(":")
- testCompile libraries.groovy
- testCompile libraries.junit4
+ testImplementation project(":")
+ testImplementation libraries.groovy
+ testImplementation libraries.junit4
}
diff --git a/subprojects/inline/inline.gradle b/subprojects/inline/inline.gradle
index 9d9b39d6c7..d1f9214580 100644
--- a/subprojects/inline/inline.gradle
+++ b/subprojects/inline/inline.gradle
@@ -3,8 +3,8 @@ description = "Mockito preconfigured inline mock maker (intermediate and to be s
apply from: "$rootDir/gradle/java-library.gradle"
dependencies {
- compile project.rootProject
- testCompile libraries.junit4
+ api project.rootProject
+ testImplementation libraries.junit4
}
tasks.javadoc.enabled = false
diff --git a/subprojects/inline/src/test/java/org/mockitoinline/EnumMockingTest.java b/subprojects/inline/src/test/java/org/mockitoinline/EnumMockingTest.java
new file mode 100644
index 0000000000..a418aab7a4
--- /dev/null
+++ b/subprojects/inline/src/test/java/org/mockitoinline/EnumMockingTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2021 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;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class EnumMockingTest {
+
+ @Test
+ public void testMockEnum() {
+ Animal a = Mockito.mock(Animal.class);
+ assertThat(a, not(equalTo(Animal.CAT)));
+ assertThat(a.sound(), nullValue(String.class));
+ assertThat(a.name(), nullValue(String.class));
+ }
+
+ enum Animal {
+ CAT {
+ @Override
+ public String sound() {
+ return "meow";
+ }
+ };
+
+ public abstract String sound();
+ }
+}
diff --git a/subprojects/junit-jupiter/junit-jupiter.gradle b/subprojects/junit-jupiter/junit-jupiter.gradle
index 6e24b6a861..99f63e75d5 100644
--- a/subprojects/junit-jupiter/junit-jupiter.gradle
+++ b/subprojects/junit-jupiter/junit-jupiter.gradle
@@ -1,5 +1,3 @@
-import aQute.bnd.gradle.BundleTaskConvention
-import aQute.bnd.gradle.FileSetRepositoryConvention
import aQute.bnd.gradle.Resolve
description = "Mockito JUnit 5 support"
@@ -8,11 +6,11 @@ apply from: "$rootDir/gradle/java-library.gradle"
apply plugin: 'biz.aQute.bnd.builder'
dependencies {
- compile project.rootProject
+ api project.rootProject
implementation libraries.junitJupiterApi
- testCompile libraries.assertj
- testCompile libraries.junitPlatformLauncher
- testRuntime libraries.junitJupiterEngine
+ testImplementation libraries.assertj
+ testImplementation libraries.junitPlatformLauncher
+ testRuntimeOnly libraries.junitJupiterEngine
}
tasks.withType(Test) {
@@ -21,26 +19,26 @@ tasks.withType(Test) {
jar {
classpath = project.configurations.runtimeClasspath
- bnd(
- 'Bundle-Name': 'Mockito Extension Library for JUnit 5.',
- 'Bundle-SymbolicName': 'org.mockito.junit-jupiter',
- 'Bundle-Version': "\${version_cleanup;${project.version}}",
- '-versionpolicy': '[${version;==;${@}},${version;+;${@}})',
- 'Export-Package': "org.mockito.junit.jupiter.*;version=${version}",
- '-removeheaders': 'Private-Package',
- 'Automatic-Module-Name': 'org.mockito.junit.jupiter',
- '-noextraheaders': 'true',
- '-export-apiguardian': 'org.mockito.internal.*'
- )
+ bundle {
+ bnd(
+ 'Bundle-Name': 'Mockito Extension Library for JUnit 5.',
+ 'Bundle-SymbolicName': 'org.mockito.junit-jupiter',
+ 'Bundle-Version': "\${version_cleanup;${project.version}}",
+ '-versionpolicy': '[${version;==;${@}},${version;+;${@}})',
+ 'Export-Package': "org.mockito.junit.jupiter.*;version=${version}",
+ '-removeheaders': 'Private-Package',
+ 'Automatic-Module-Name': 'org.mockito.junit.jupiter',
+ '-noextraheaders': 'true',
+ '-export-apiguardian': 'org.mockito.internal.*'
+ )
+ }
}
-def osgiPropertiesFile = file("$buildDir/verifyOSGiProperties.bndrun")
-
// Bnd's Resolve task uses a properties file for its configuration. This
// task writes out the properties necessary for it to verify the OSGi
// metadata.
-tasks.register('osgiProperties', WriteProperties) {
- outputFile = osgiPropertiesFile
+def osgiProperties = tasks.register('osgiProperties', WriteProperties) {
+ outputFile = layout.getBuildDirectory().file("verifyOSGiProperties.bndrun")
property('-standalone', true)
property('-runee', "JavaSE-${targetCompatibility}")
property('-runrequires', 'osgi.identity;filter:="(osgi.identity=org.mockito.junit-jupiter)"')
@@ -49,12 +47,12 @@ tasks.register('osgiProperties', WriteProperties) {
// Bnd's Resolve task is what verifies that a jar can be used in OSGi and
// that its metadata is valid. If the metadata is invalid this task will
// fail.
-tasks.register('verifyOSGi', Resolve) {
- dependsOn(osgiProperties)
- setBndrun(osgiPropertiesFile)
+def verifyOSGi = tasks.register('verifyOSGi', Resolve) {
+ getBndrun().fileProvider(osgiProperties.map { it.outputFile })
+ getOutputBndrun().set(layout.getBuildDirectory().file("resolvedOSGiProperties.bndrun"))
reportOptional = false
}
-tasks.check {
+tasks.named('check') {
dependsOn(verifyOSGi)
}
diff --git a/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java b/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java
index c2cf37d5fe..220b7f4509 100644
--- a/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java
+++ b/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java
@@ -21,9 +21,9 @@
import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.ParameterResolver;
import org.mockito.Mock;
-import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.MockitoSession;
+import org.mockito.ScopedMock;
import org.mockito.internal.configuration.MockAnnotationProcessor;
import org.mockito.internal.configuration.plugins.Plugins;
import org.mockito.internal.session.MockitoSessionLoggerAdapter;
@@ -181,7 +181,7 @@ private Optional retrieveAnnotationFromTestClasses(final Extens
@Override
@SuppressWarnings("unchecked")
public void afterEach(ExtensionContext context) {
- context.getStore(MOCKITO).remove(MOCKS, Set.class).forEach(mock -> ((MockedStatic>) mock).closeOnDemand());
+ context.getStore(MOCKITO).remove(MOCKS, Set.class).forEach(mock -> ((ScopedMock) mock).closeOnDemand());
context.getStore(MOCKITO).remove(SESSION, MockitoSession.class)
.finishMocking(context.getExecutionException().orElse(null));
}
@@ -200,7 +200,7 @@ public Object resolveParameter(ParameterContext parameterContext, ExtensionConte
parameter.getType(),
parameter::getParameterizedType,
parameter.getName());
- if (mock instanceof MockedStatic>) {
+ if (mock instanceof ScopedMock) {
context.getStore(MOCKITO).get(MOCKS, Set.class).add(mock);
}
return mock;
diff --git a/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle.kts b/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle.kts
index ad78a43b1f..98d44d43f6 100644
--- a/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle.kts
+++ b/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle.kts
@@ -7,11 +7,11 @@ plugins {
description = "End-to-end tests for automatic registration of MockitoExtension."
dependencies {
- testCompile(project(":junit-jupiter"))
- testCompile(library("assertj"))
- testCompile(library("junitPlatformLauncher"))
- testCompile(library("junitJupiterApi"))
- testRuntime(library("junitJupiterEngine"))
+ testImplementation(project(":junit-jupiter"))
+ testImplementation(library("assertj"))
+ testImplementation(library("junitPlatformLauncher"))
+ testImplementation(library("junitJupiterApi"))
+ testRuntimeOnly(library("junitJupiterEngine"))
}
tasks.named("test") {
diff --git a/subprojects/junitJupiterInlineMockMakerExtensionTest/junitJupiterInlineMockMakerExtensionTest.gradle.kts b/subprojects/junitJupiterInlineMockMakerExtensionTest/junitJupiterInlineMockMakerExtensionTest.gradle.kts
index 4bf7e47ee9..442c64f0e9 100644
--- a/subprojects/junitJupiterInlineMockMakerExtensionTest/junitJupiterInlineMockMakerExtensionTest.gradle.kts
+++ b/subprojects/junitJupiterInlineMockMakerExtensionTest/junitJupiterInlineMockMakerExtensionTest.gradle.kts
@@ -7,11 +7,11 @@ plugins {
description = "End-to-end tests for automatic registration of MockitoExtension with the inline mock maker."
dependencies {
- testCompile(project(":junit-jupiter"))
- testCompile(library("assertj"))
- testCompile(library("junitPlatformLauncher"))
- testCompile(library("junitJupiterApi"))
- testRuntime(library("junitJupiterEngine"))
+ testImplementation(project(":junit-jupiter"))
+ testImplementation(library("assertj"))
+ testImplementation(library("junitPlatformLauncher"))
+ testImplementation(library("junitJupiterApi"))
+ testRuntimeOnly(library("junitJupiterEngine"))
}
tasks.named("test") {
diff --git a/subprojects/junitJupiterInlineMockMakerExtensionTest/src/test/java/org/mockitousage/CloseOnDemandTest.java b/subprojects/junitJupiterInlineMockMakerExtensionTest/src/test/java/org/mockitousage/CloseOnDemandTest.java
new file mode 100644
index 0000000000..cfb66cf96a
--- /dev/null
+++ b/subprojects/junitJupiterInlineMockMakerExtensionTest/src/test/java/org/mockitousage/CloseOnDemandTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2021 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockitousage;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.MockedConstruction;
+import org.mockito.MockedStatic;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+/**
+ * Tests to assert that ScopedMock mocks are properly closed on scope exit.
+ */
+@ExtendWith(MockitoExtension.class)
+class CloseOnDemandTest {
+
+ @Test
+ void create_mocked_static_1(@Mock MockedStatic