@@ -13,6 +13,42 @@ class CoreFunctionalityTest {
1313
1414 @ Test
1515 void testCompileOnly_extends_compileOnly_for_whitebox_test_suites () {
16+ build .appBuildFile .appendText (
17+ """
18+ javaModuleTesting.whitebox(testing.suites["test"]) {
19+ requires.add("org.junit.jupiter.api")
20+ }
21+ dependencies {
22+ compileOnly("jakarta.servlet:jakarta.servlet-api:6.1.0")
23+ }""" );
24+ build .file ("app/src/main/java/org/example/app/ServletImpl.java" )
25+ .writeText (
26+ """
27+ package org.example.app;
28+ public abstract class ServletImpl implements jakarta.servlet.Servlet { }
29+ """ );
30+ build .file ("app/src/test/java/org/example/app/test/ServletMock.java" )
31+ .writeText (
32+ """
33+ package org.example.app.test;
34+ public abstract class ServletMock extends org.example.app.ServletImpl { }
35+ """ );
36+ build .appModuleInfoFile .writeText (
37+ """
38+ module org.example.app {
39+ requires static jakarta.servlet;
40+ }
41+ """ );
42+
43+ var result = build .runner ("compileTestJava" ).build ();
44+ var compileTestResult = result .task (":app:compileTestJava" );
45+
46+ assertThat (compileTestResult ).isNotNull ();
47+ assertThat (compileTestResult .getOutcome ()).isEqualTo (TaskOutcome .SUCCESS );
48+ }
49+
50+ @ Test
51+ void testCompileOnly_extends_compileOnly_for_classpath_test_suites () {
1652 build .appBuildFile .appendText (
1753 """
1854 javaModuleTesting.classpath(testing.suites["test"])
@@ -44,4 +80,48 @@ public abstract class ServletMock extends org.example.app.ServletImpl { }
4480 assertThat (compileTestResult ).isNotNull ();
4581 assertThat (compileTestResult .getOutcome ()).isEqualTo (TaskOutcome .SUCCESS );
4682 }
83+
84+ @ Test
85+ void testImplementation_extends_implementation_for_whitebox_test_suites () {
86+ build .useTestFixturesPlugin ();
87+ build .appBuildFile .appendText (
88+ """
89+ javaModuleTesting.whitebox(testing.suites["test"]) {
90+ requires.add("org.junit.jupiter.api")
91+ sourcesUnderTest.set(sourceSets.testFixtures)
92+ }
93+ dependencies {
94+ testFixturesImplementation("jakarta.servlet:jakarta.servlet-api:6.1.0")
95+ }""" );
96+ build .file ("app/src/testFixtures/java/org/example/app/Main.java" )
97+ .writeText ("""
98+ package org.example.app;
99+ public class Main {}
100+ """ );
101+ build .file ("app/src/testFixtures/java/org/example/app/ServletImpl.java" )
102+ .writeText (
103+ """
104+ package org.example.app;
105+ public abstract class ServletImpl implements jakarta.servlet.Servlet { }
106+ """ );
107+ build .file ("app/src/test/java/org/example/app/test/ServletMock.java" )
108+ .writeText (
109+ """
110+ package org.example.app.test;
111+ public abstract class ServletMock extends org.example.app.ServletImpl { }
112+ """ );
113+ build .file ("app/src/testFixtures/java/module-info.java" )
114+ .writeText (
115+ """
116+ module org.example.fixtures {
117+ requires static jakarta.servlet;
118+ }
119+ """ );
120+
121+ var result = build .runner ("compileTestJava" ).build ();
122+ var compileTestResult = result .task (":app:compileTestJava" );
123+
124+ assertThat (compileTestResult ).isNotNull ();
125+ assertThat (compileTestResult .getOutcome ()).isEqualTo (TaskOutcome .SUCCESS );
126+ }
47127}
0 commit comments