File tree Expand file tree Collapse file tree 3 files changed +60
-3
lines changed
main/java/com/jupitertools/compiletest
test/java/com/jupitertools/compiletest Expand file tree Collapse file tree 3 files changed +60
-3
lines changed Original file line number Diff line number Diff line change 41
41
<scope >test</scope >
42
42
</dependency >
43
43
44
+ <dependency >
45
+ <groupId >org.projectlombok</groupId >
46
+ <artifactId >lombok</artifactId >
47
+ <version >1.18.10</version >
48
+ <scope >test</scope >
49
+ </dependency >
50
+
44
51
<!-- region Junit 5 -->
45
52
<dependency >
46
53
<groupId >org.junit.jupiter</groupId >
Original file line number Diff line number Diff line change 11
11
import org .intellij .lang .annotations .Language ;
12
12
13
13
14
-
15
14
public class CompileTest {
16
15
17
16
private List <Code > classCodes = new ArrayList <>();
18
17
private List <Processor > processors = new ArrayList <>();
18
+ private boolean inheritAllProcessors = false ;
19
19
20
20
public CompileTest classCode (String name , @ Language ("Java" ) String code ) {
21
21
classCodes .add (new Code (name , code ));
@@ -45,10 +45,16 @@ public CompileResult compile() {
45
45
null ,
46
46
null ,
47
47
compilationUnits );
48
-
49
- compilationTask .setProcessors (processors );
48
+ if (!inheritAllProcessors ) {
49
+ compilationTask .setProcessors (processors );
50
+ }
50
51
compilationTask .call ();
51
52
CompiledClassLoader classLoader = new CompiledClassLoader (fileManager .getGeneratedFiles ());
52
53
return new CompileResult (classLoader );
53
54
}
55
+
56
+ public CompileTest inheritAllProcessors () {
57
+ this .inheritAllProcessors = true ;
58
+ return this ;
59
+ }
54
60
}
Original file line number Diff line number Diff line change 1
1
package com .jupitertools .compiletest ;
2
2
3
+ import org .junit .jupiter .api .Assertions ;
3
4
import org .junit .jupiter .api .Nested ;
4
5
import org .junit .jupiter .api .Test ;
5
6
@@ -94,4 +95,47 @@ void invokeStatic() {
94
95
assertThat (result ).isEqualTo ("Hey-Ho! class C" );
95
96
}
96
97
}
98
+
99
+ @ Nested
100
+ class ProcessorsInherit {
101
+
102
+ @ Test
103
+ void lombokTest () {
104
+
105
+ String code = "import lombok.Getter;" +
106
+ "" +
107
+ "public class A {" +
108
+ " @Getter" +
109
+ " public String tst = \" ABC\" ;" +
110
+ "}" ;
111
+
112
+ Object result = new CompileTest ().classCode ("A" , code )
113
+ .inheritAllProcessors ()
114
+ .compile ()
115
+ .createClass ("A" )
116
+ .invoke ("getTst" );
117
+
118
+ assertThat (result ).isEqualTo ("ABC" );
119
+ }
120
+
121
+ @ Test
122
+ void error () {
123
+ String code = "import lombok.Getter;" +
124
+ "" +
125
+ "public class A {" +
126
+ " @Getter" +
127
+ " public String tst = \" ABC\" ;" +
128
+ "}" ;
129
+
130
+ InstantiatedClass instance = new CompileTest ().classCode ("A" , code )
131
+ .compile ()
132
+ .createClass ("A" );
133
+
134
+ RuntimeException exc = Assertions .assertThrows (RuntimeException .class ,
135
+ () -> instance .invoke ("getTst" ));
136
+
137
+ assertThat (exc .getCause ()).isInstanceOf (NoSuchMethodException .class );
138
+ assertThat (exc .getMessage ()).contains ("A.getTst()" );
139
+ }
140
+ }
97
141
}
You can’t perform that action at this time.
0 commit comments