diff --git a/src/funcTest/groovy/pl/droidsonroids/gradle/pitest/functional/MockableAndroidJarFunctionalSpec.groovy b/src/funcTest/groovy/pl/droidsonroids/gradle/pitest/functional/MockableAndroidJarFunctionalSpec.groovy index 312e01e3..32888194 100644 --- a/src/funcTest/groovy/pl/droidsonroids/gradle/pitest/functional/MockableAndroidJarFunctionalSpec.groovy +++ b/src/funcTest/groovy/pl/droidsonroids/gradle/pitest/functional/MockableAndroidJarFunctionalSpec.groovy @@ -50,6 +50,7 @@ class MockableAndroidJarFunctionalSpec extends AbstractPitestFunctionalSpec { dependencies { testImplementation 'junit:junit:4.13.2' + testImplementation 'org.json:json:20180813' } """.stripIndent() and: diff --git a/src/funcTest/resources/testProjects/mockableAndroidJar/src/test/java/pitest/test/LibraryTest.java b/src/funcTest/resources/testProjects/mockableAndroidJar/src/test/java/pitest/test/LibraryTest.java index e85e86aa..397a1741 100644 --- a/src/funcTest/resources/testProjects/mockableAndroidJar/src/test/java/pitest/test/LibraryTest.java +++ b/src/funcTest/resources/testProjects/mockableAndroidJar/src/test/java/pitest/test/LibraryTest.java @@ -3,6 +3,7 @@ import org.junit.Test; import pitest.test.Library; +import org.json.JSONObject; import static org.junit.Assert.*; @@ -12,4 +13,10 @@ public void testSomeLibraryMethod() { Library classUnderTest = new Library(); assertTrue("someLibraryMethod should return 'true'", classUnderTest.someLibraryMethod()); } + + @Test + public void testJSON() throws Exception { + JSONObject jsonObject = new JSONObject("{\"id\": 123}"); + assertEquals("123", jsonObject.optString("id")); + } } diff --git a/src/main/groovy/pl/droidsonroids/gradle/pitest/PitestPlugin.groovy b/src/main/groovy/pl/droidsonroids/gradle/pitest/PitestPlugin.groovy index 71d6280c..99be027c 100644 --- a/src/main/groovy/pl/droidsonroids/gradle/pitest/PitestPlugin.groovy +++ b/src/main/groovy/pl/droidsonroids/gradle/pitest/PitestPlugin.groovy @@ -144,6 +144,11 @@ class PitestPlugin implements Plugin { variants.all { BaseVariant variant -> PitestTask variantTask = project.tasks.create("${PITEST_TASK_NAME}${variant.name.capitalize()}", PitestTask) + boolean includeMockableAndroidJar = !pitestExtension.excludeMockableAndroidJar.getOrElse(false) + if (includeMockableAndroidJar) { + addMockableAndroidJarDependencies() + } + Task mockableAndroidJarTask if (ANDROID_GRADLE_PLUGIN_VERSION_NUMBER < new Semver("3.2.0")) { mockableAndroidJarTask = project.tasks.findByName("mockableAndroidJar") @@ -153,7 +158,7 @@ class PitestPlugin implements Plugin { configureTaskDefault(variantTask, variant, mockableAndroidJarTask.outputJar) } - if (!pitestExtension.excludeMockableAndroidJar.getOrElse(false)) { + if (includeMockableAndroidJar) { variantTask.dependsOn mockableAndroidJarTask } @@ -169,6 +174,18 @@ class PitestPlugin implements Plugin { } } + private void addMockableAndroidJarDependencies() { + //according to https://search.maven.org/artifact/com.google.android/android/4.1.1.4/jar + project.buildscript.dependencies { + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "org.json:json:20080701" + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "xpp3:xpp3:1.1.4c" + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "xerces:xmlParserAPIs:2.6.2" + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "org.khronos:opengl-api:gl1.1-android-2.1_r1" + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "org.apache.httpcomponents:httpclient:4.0.1" + "$PITEST_TEST_COMPILE_CONFIGURATION_NAME" "commons-logging:commons-logging:1.1.1" + } + } + @SuppressWarnings("BuilderMethodWithSideEffects") private void createConfigurations() { [PITEST_CONFIGURATION_NAME, PITEST_TEST_COMPILE_CONFIGURATION_NAME].each { configuration ->