17
17
18
18
import org .junit .jupiter .api .Test ;
19
19
import org .openrewrite .config .Environment ;
20
+ import org .openrewrite .java .JavaParser ;
20
21
import org .openrewrite .test .RecipeSpec ;
21
22
import org .openrewrite .test .RewriteTest ;
22
23
23
24
import java .util .regex .Matcher ;
24
25
import java .util .regex .Pattern ;
25
26
26
27
import static org .assertj .core .api .Assertions .assertThat ;
28
+ import static org .openrewrite .java .Assertions .*;
27
29
import static org .openrewrite .maven .Assertions .pomXml ;
28
30
29
31
class JohnzonJavaxtoJakartaTest implements RewriteTest {
@@ -34,55 +36,83 @@ public void defaults(RecipeSpec spec) {
34
36
Environment .builder ()
35
37
.scanRuntimeClasspath ("org.openrewrite.java.migrate" )
36
38
.build ()
37
- .activateRecipes ("org.openrewrite.java.migrate.jakarta.JohnzonJavaxToJakarta" ));
39
+ .activateRecipes ("org.openrewrite.java.migrate.jakarta.JohnzonJavaxToJakarta" )
40
+ ).parser (JavaParser .fromJavaVersion ().classpath ("johnzon-core" ));
38
41
}
39
42
40
43
@ Test
41
44
void migrateJohnzonDependencies () {
42
- //language=xml
43
45
rewriteRun (
44
- pomXml (
45
- """
46
- <project>
47
- <groupId>com.example.ehcache</groupId>
48
- <artifactId>johnzon-legacy</artifactId>
49
- <version>1.0.0</version>
50
- <properties>
51
- <johnzon.version>1.2.5</johnzon.version>
52
- </properties>
53
- <dependencies>
54
- <dependency>
55
- <groupId>org.apache.johnzon</groupId>
56
- <artifactId>johnzon-core</artifactId>
57
- <version>${johnzon.version}</version>
58
- </dependency>
59
- </dependencies>
60
- </project>
61
- """ ,
62
- spec -> spec .after (actual -> {
63
- assertThat (actual ).isNotNull ();
64
- Matcher version = Pattern .compile ("<johnzon.version>([0-9]+\\ .[0-9]+\\ .[0-9]+)</johnzon.version>" )
65
- .matcher (actual );
66
- assertThat (version .find ()).isTrue ();
67
- return """
68
- <project>
69
- <groupId>com.example.ehcache</groupId>
70
- <artifactId>johnzon-legacy</artifactId>
71
- <version>1.0.0</version>
72
- <properties>
73
- <johnzon.version>%s</johnzon.version>
74
- </properties>
75
- <dependencies>
76
- <dependency>
77
- <groupId>org.apache.johnzon</groupId>
78
- <artifactId>johnzon-core</artifactId>
79
- <version>${johnzon.version}</version>
80
- <classifier>jakarta</classifier>
81
- </dependency>
82
- </dependencies>
83
- </project>
84
- """ .formatted (version .group (1 ));
85
- })
46
+ mavenProject ("demo" ,
47
+ pomXml (
48
+ //language=xml
49
+ """
50
+ <project>
51
+ <groupId>com.example.ehcache</groupId>
52
+ <artifactId>johnzon-legacy</artifactId>
53
+ <version>1.0.0</version>
54
+ <properties>
55
+ <johnzon.version>1.2.5</johnzon.version>
56
+ </properties>
57
+ <dependencies>
58
+ <dependency>
59
+ <groupId>org.apache.johnzon</groupId>
60
+ <artifactId>johnzon-core</artifactId>
61
+ <version>${johnzon.version}</version>
62
+ </dependency>
63
+ </dependencies>
64
+ </project>
65
+ """ ,
66
+ spec -> spec .after (actual -> {
67
+ assertThat (actual ).isNotNull ();
68
+ Matcher version = Pattern .compile ("<johnzon.version>([0-9]+\\ .[0-9]+\\ .[0-9]+)</johnzon.version>" )
69
+ .matcher (actual );
70
+
71
+ Matcher jsonApiVersion = Pattern .compile ("2.1.\\ d+" ).matcher (actual );
72
+ assertThat (jsonApiVersion .find ()).describedAs ("Expected jakarta.json-api 2.1.x version in %s" , actual ).isTrue ();
73
+
74
+ assertThat (version .find ()).isTrue ();
75
+ return """
76
+ <project>
77
+ <groupId>com.example.ehcache</groupId>
78
+ <artifactId>johnzon-legacy</artifactId>
79
+ <version>1.0.0</version>
80
+ <properties>
81
+ <johnzon.version>%s</johnzon.version>
82
+ </properties>
83
+ <dependencies>
84
+ <dependency>
85
+ <groupId>org.apache.johnzon</groupId>
86
+ <artifactId>johnzon-core</artifactId>
87
+ <version>${johnzon.version}</version>
88
+ </dependency>
89
+ <dependency>
90
+ <groupId>jakarta.json</groupId>
91
+ <artifactId>jakarta.json-api</artifactId>
92
+ <version>%s</version>
93
+ <scope>provided</scope>
94
+ </dependency>
95
+ </dependencies>
96
+ </project>
97
+ """ .formatted (version .group (1 ), jsonApiVersion .group (0 ));
98
+ })
99
+ ),
100
+ srcMainJava (
101
+ java (
102
+ //language=java
103
+ """
104
+ package com.example.demo;
105
+
106
+ import org.apache.johnzon.core.Snippet;
107
+
108
+ public class A {
109
+
110
+ void foo(Snippet snippet, String str) {
111
+ }
112
+ }
113
+ """
114
+ )
115
+ )
86
116
)
87
117
);
88
118
}
0 commit comments