11package at .drm .processor ;
22
3+ import static com .google .testing .compile .Compiler .javac ;
4+ import static org .assertj .core .api .Assertions .assertThat ;
5+
36import at .drm .annotation .Relation ;
7+ import com .google .common .collect .ImmutableList ;
48import com .google .testing .compile .Compilation ;
59import com .google .testing .compile .CompilationSubject ;
610import com .google .testing .compile .JavaFileObjects ;
11+ import java .io .InputStream ;
12+ import java .util .Scanner ;
13+ import java .util .Set ;
14+ import javax .annotation .processing .Messager ;
15+ import javax .annotation .processing .ProcessingEnvironment ;
16+ import javax .lang .model .SourceVersion ;
17+ import javax .tools .JavaFileObject ;
18+ import lombok .SneakyThrows ;
719import org .junit .jupiter .api .Test ;
820import org .junit .jupiter .api .extension .ExtendWith ;
921import org .mockito .Mock ;
1022import org .mockito .Mockito ;
1123import org .mockito .junit .jupiter .MockitoExtension ;
1224
13- import javax .annotation .processing .Messager ;
14- import javax .annotation .processing .ProcessingEnvironment ;
15- import javax .lang .model .SourceVersion ;
16- import java .util .Set ;
17-
18- import static com .google .testing .compile .Compiler .javac ;
19- import static org .assertj .core .api .Assertions .assertThat ;
20-
2125@ ExtendWith (MockitoExtension .class )
2226class ReleationProcessorTest {
2327
@@ -53,15 +57,14 @@ void getSupportedSourceVersion() {
5357
5458 @ Test
5559 void process () {
56- ReleationProcessor releationProcessor = new ReleationProcessor ();
57- Compilation compilation = javac ()
58- .withProcessors (releationProcessor )
59- .compile (JavaFileObjects .forResource ("TestFile.java" ));
60+ ReleationProcessor releationProcessor = new ReleationProcessor ();
61+ Compilation compilation = javac ()
62+ .withProcessors (releationProcessor )
63+ .compile (JavaFileObjects .forResource ("TestFile.java" ));
6064 CompilationSubject .assertThat (compilation ).succeeded ();
61- com . google . common . collect . ImmutableList <javax . tools . JavaFileObject > generatedFiles = compilation .generatedFiles ();
65+ ImmutableList <JavaFileObject > generatedFiles = compilation .generatedFiles ();
6266 assertThat (generatedFiles ).isNotEmpty ();
6367
64- // Zusätzliche Prüfung: Methoden vorhanden
6568 RelationClassMethods methods = generatedFiles .stream ()
6669 .filter (file -> file .getName ().endsWith ("Relation.java" ))
6770 .map (this ::extractMethodsFromFile )
@@ -79,27 +82,26 @@ void process() {
7982 assertThat (methods .hasConstructor ).isTrue ();
8083 }
8184
85+ @ SneakyThrows
8286 private RelationClassMethods extractMethodsFromFile (javax .tools .JavaFileObject file ) {
8387 RelationClassMethods result = new RelationClassMethods ();
84- try (java .io .InputStream is = file .openInputStream ();
85- java .util .Scanner scanner = new java .util .Scanner (is ).useDelimiter ("\\ A" )) {
86- String content = scanner .hasNext () ? scanner .next () : "" ;
87- result .hasGetterId = content .contains ("public Long getId()" );
88- result .hasSetterId = content .contains ("public void setId(Long id)" );
89- result .hasGetterSourceObject = content .contains ("public " ) && content .contains (" getSourceObject()" );
90- result .hasSetterSourceObject = content .contains ("public void setSourceObject" );
91- result .hasGetterTargetId = content .contains ("public Long getTargetId()" );
92- result .hasSetterTargetId = content .contains ("public void setTargetId(Long targetId)" );
93- result .hasGetterTargetType = content .contains ("public String getTargetType()" );
94- result .hasSetterTargetType = content .contains ("public void setTargetType(String targetType)" );
95- result .hasConstructor = content .contains ("public " ) && content .contains ("() {" );
96- } catch (Exception e ) {
97- throw new RuntimeException (e );
98- }
88+ InputStream is = file .openInputStream ();
89+ Scanner scanner = new java .util .Scanner (is ).useDelimiter ("\\ A" );
90+ String content = scanner .hasNext () ? scanner .next () : "" ;
91+ result .hasGetterId = content .contains ("public Long getId()" );
92+ result .hasSetterId = content .contains ("public void setId(Long id)" );
93+ result .hasGetterSourceObject = content .contains ("public " ) && content .contains (" getSourceObject()" );
94+ result .hasSetterSourceObject = content .contains ("public void setSourceObject" );
95+ result .hasGetterTargetId = content .contains ("public Long getTargetId()" );
96+ result .hasSetterTargetId = content .contains ("public void setTargetId(Long targetId)" );
97+ result .hasGetterTargetType = content .contains ("public String getTargetType()" );
98+ result .hasSetterTargetType = content .contains ("public void setTargetType(String targetType)" );
99+ result .hasConstructor = content .contains ("public " ) && content .contains ("() {" );
99100 return result ;
100101 }
101102
102103 private static class RelationClassMethods {
104+
103105 boolean hasGetterId = false ;
104106 boolean hasSetterId = false ;
105107 boolean hasGetterSourceObject = false ;
@@ -110,4 +112,4 @@ private static class RelationClassMethods {
110112 boolean hasSetterTargetType = false ;
111113 boolean hasConstructor = false ;
112114 }
113- }
115+ }
0 commit comments