From 81cc3c659b76a77d7df28d363a18cd814dd9a108 Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Mon, 12 Dec 2022 12:36:47 -0500 Subject: [PATCH] Add new artifact mockito-subclass (to use mock-maker-subclass MockMaker) Signed-off-by: Andriy Redko --- .github/workflows/ci.yml | 2 +- settings.gradle.kts | 3 ++- .../org.mockito.plugins.MemberAccessor | 1 + .../org.mockito.plugins.MockMaker | 1 + .../java/org/mockitosubclass/PluginTest.java | 26 +++++++++++++++++++ subprojects/subclass/subclass.gradle | 11 ++++++++ 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MemberAccessor create mode 100644 subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker create mode 100644 subprojects/subclass/src/test/java/org/mockitosubclass/PluginTest.java create mode 100644 subprojects/subclass/subclass.gradle diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc0694a891..16a021c2ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: strategy: matrix: java: [8, 11, 17] - mock-maker: ['mock-maker-default', 'mock-maker-inline'] + mock-maker: ['mock-maker-default', 'mock-maker-inline', 'mock-maker-subclass'] # All build steps # SINGLE-MATRIX-JOB means that the step does not need to be executed on every job in the matrix diff --git a/settings.gradle.kts b/settings.gradle.kts index 313149df98..7c3c09c74d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,7 +2,8 @@ plugins { id("com.gradle.enterprise").version("3.3.4") } -include("inline", +include("subclass", + "inline", "proxy", "extTest", "groovyTest", diff --git a/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MemberAccessor b/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MemberAccessor new file mode 100644 index 0000000000..1422f9900b --- /dev/null +++ b/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MemberAccessor @@ -0,0 +1 @@ +member-accessor-module diff --git a/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker b/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 0000000000..fdbd0b1579 --- /dev/null +++ b/subprojects/subclass/src/main/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-subclass diff --git a/subprojects/subclass/src/test/java/org/mockitosubclass/PluginTest.java b/subprojects/subclass/src/test/java/org/mockitosubclass/PluginTest.java new file mode 100644 index 0000000000..4acd77899f --- /dev/null +++ b/subprojects/subclass/src/test/java/org/mockitosubclass/PluginTest.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 Mockito contributors + * This program is made available under the terms of the MIT License. + */ +package org.mockitosubclass; + +import org.junit.Test; +import org.mockito.internal.configuration.plugins.Plugins; +import org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker; +import org.mockito.internal.util.reflection.ModuleMemberAccessor; + +import static org.junit.Assert.*; + +public class PluginTest { + + @Test + public void mock_maker_should_be_inline() throws Exception { + assertTrue(Plugins.getMockMaker() instanceof ByteBuddyMockMaker); + } + + @Test + public void member_accessor_should_be_module() throws Exception { + assertTrue(Plugins.getMemberAccessor() instanceof ModuleMemberAccessor); + } + +} diff --git a/subprojects/subclass/subclass.gradle b/subprojects/subclass/subclass.gradle new file mode 100644 index 0000000000..8ef7ae1ae5 --- /dev/null +++ b/subprojects/subclass/subclass.gradle @@ -0,0 +1,11 @@ +description = "Mockito preconfigured subclass mock maker" + +apply from: "$rootDir/gradle/java-library.gradle" + +dependencies { + api project.rootProject + testImplementation libraries.junit4 + testImplementation libraries.assertj +} + +tasks.javadoc.enabled = false