Skip to content

Commit 98a4002

Browse files
authored
Create SPI metadata verification (unit) test (#60)
1 parent 6cfb65d commit 98a4002

File tree

11 files changed

+287
-0
lines changed

11 files changed

+287
-0
lines changed

cbor/src/test/java/module-info.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,8 @@
2424
opens tools.jackson.jakarta.rs.cbor;
2525
opens tools.jackson.jakarta.rs.cbor.dw;
2626
opens tools.jackson.jakarta.rs.cbor.jersey;
27+
28+
// ServiceLoader tests
29+
uses jakarta.ws.rs.ext.MessageBodyWriter;
30+
uses jakarta.ws.rs.ext.MessageBodyReader;
2731
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package tools.jackson.jakarta.rs.cbor;
2+
3+
import java.util.Comparator;
4+
import java.util.List;
5+
import java.util.ServiceLoader;
6+
import java.util.ServiceLoader.Provider;
7+
8+
import jakarta.ws.rs.ext.MessageBodyReader;
9+
import jakarta.ws.rs.ext.MessageBodyWriter;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import static org.junit.jupiter.api.Assertions.*;
14+
15+
public class ServiceLoaderIT {
16+
@Test
17+
public void testMessageBodyWriter() {
18+
@SuppressWarnings("rawtypes")
19+
final List<MessageBodyWriter> providers = ServiceLoader
20+
.load(MessageBodyWriter.class)
21+
.stream()
22+
.map(Provider<MessageBodyWriter>::get)
23+
.toList();
24+
25+
assertEquals(providers
26+
.stream()
27+
.map(w -> w.getClass())
28+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
29+
tools.jackson.jakarta.rs.cbor.JacksonCBORProvider.class
30+
));
31+
}
32+
33+
@Test
34+
public void testMessageBodyReader() {
35+
@SuppressWarnings("rawtypes")
36+
final List<MessageBodyReader> providers = ServiceLoader
37+
.load(MessageBodyReader.class)
38+
.stream()
39+
.map(Provider<MessageBodyReader>::get)
40+
.toList();
41+
42+
assertEquals(providers
43+
.stream()
44+
.map(w -> w.getClass())
45+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
46+
tools.jackson.jakarta.rs.cbor.JacksonCBORProvider.class
47+
));
48+
}
49+
}

json/src/test/java/module-info.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,8 @@
2727
opens tools.jackson.jakarta.rs.json.resteasy;
2828
opens tools.jackson.jakarta.rs.json.testutil;
2929
opens tools.jackson.jakarta.rs.json.util;
30+
31+
// ServiceLoader tests
32+
uses jakarta.ws.rs.ext.MessageBodyWriter;
33+
uses jakarta.ws.rs.ext.MessageBodyReader;
3034
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package tools.jackson.jakarta.rs.json;
2+
3+
import java.util.Comparator;
4+
import java.util.List;
5+
import java.util.ServiceLoader;
6+
import java.util.ServiceLoader.Provider;
7+
8+
import jakarta.ws.rs.ext.MessageBodyReader;
9+
import jakarta.ws.rs.ext.MessageBodyWriter;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import static org.junit.jupiter.api.Assertions.*;
14+
15+
public class ServiceLoaderIT {
16+
@Test
17+
public void testMessageBodyWriter() {
18+
@SuppressWarnings("rawtypes")
19+
final List<MessageBodyWriter> providers = ServiceLoader
20+
.load(MessageBodyWriter.class)
21+
.stream()
22+
.map(Provider<MessageBodyWriter>::get)
23+
.toList();
24+
25+
assertEquals(providers
26+
.stream()
27+
.map(w -> w.getClass())
28+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
29+
tools.jackson.jakarta.rs.json.JacksonJsonProvider.class
30+
));
31+
}
32+
33+
@Test
34+
public void testMessageBodyReader() {
35+
@SuppressWarnings("rawtypes")
36+
final List<MessageBodyReader> providers = ServiceLoader
37+
.load(MessageBodyReader.class)
38+
.stream()
39+
.map(Provider<MessageBodyReader>::get)
40+
.toList();
41+
42+
assertEquals(providers
43+
.stream()
44+
.map(w -> w.getClass())
45+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
46+
tools.jackson.jakarta.rs.json.JacksonJsonProvider.class
47+
));
48+
}
49+
}

pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,24 @@ https://stackoverflow.com/questions/44088493/jersey-stopped-working-with-injecti
158158
</repositories>
159159

160160
<build>
161+
<plugins>
162+
<!-- ServiceLoader tests -->
163+
<plugin>
164+
<groupId>org.apache.maven.plugins</groupId>
165+
<artifactId>maven-failsafe-plugin</artifactId>
166+
<configuration>
167+
<useModulePath>false</useModulePath>
168+
</configuration>
169+
<executions>
170+
<execution>
171+
<goals>
172+
<goal>integration-test</goal>
173+
<goal>verify</goal>
174+
</goals>
175+
</execution>
176+
</executions>
177+
</plugin>
178+
</plugins>
161179
<pluginManagement>
162180
<plugins>
163181
<plugin>

smile/src/test/java/module-info.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,8 @@
2323
opens tools.jackson.jakarta.rs.smile;
2424
opens tools.jackson.jakarta.rs.smile.dw;
2525
opens tools.jackson.jakarta.rs.smile.jersey;
26+
27+
// ServiceLoader tests
28+
uses jakarta.ws.rs.ext.MessageBodyWriter;
29+
uses jakarta.ws.rs.ext.MessageBodyReader;
2630
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package tools.jackson.jakarta.rs.smile;
2+
3+
import java.util.Comparator;
4+
import java.util.List;
5+
import java.util.ServiceLoader;
6+
import java.util.ServiceLoader.Provider;
7+
8+
import jakarta.ws.rs.ext.MessageBodyReader;
9+
import jakarta.ws.rs.ext.MessageBodyWriter;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import static org.junit.jupiter.api.Assertions.*;
14+
15+
public class ServiceLoaderIT {
16+
@Test
17+
public void testMessageBodyWriter() {
18+
@SuppressWarnings("rawtypes")
19+
final List<MessageBodyWriter> providers = ServiceLoader
20+
.load(MessageBodyWriter.class)
21+
.stream()
22+
.map(Provider<MessageBodyWriter>::get)
23+
.toList();
24+
25+
assertEquals(providers
26+
.stream()
27+
.map(w -> w.getClass())
28+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
29+
tools.jackson.jakarta.rs.smile.JacksonSmileProvider.class
30+
));
31+
}
32+
33+
@Test
34+
public void testMessageBodyReader() {
35+
@SuppressWarnings("rawtypes")
36+
final List<MessageBodyReader> providers = ServiceLoader
37+
.load(MessageBodyReader.class)
38+
.stream()
39+
.map(Provider<MessageBodyReader>::get)
40+
.toList();
41+
42+
assertEquals(providers
43+
.stream()
44+
.map(w -> w.getClass())
45+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
46+
tools.jackson.jakarta.rs.smile.JacksonSmileProvider.class
47+
));
48+
}
49+
}

xml/src/test/java/module-info.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,8 @@
2323
opens tools.jackson.jakarta.rs.xml;
2424
opens tools.jackson.jakarta.rs.xml.dw;
2525
opens tools.jackson.jakarta.rs.xml.jersey;
26+
27+
// ServiceLoader tests
28+
uses jakarta.ws.rs.ext.MessageBodyWriter;
29+
uses jakarta.ws.rs.ext.MessageBodyReader;
2630
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package tools.jackson.jakarta.rs.xml;
2+
3+
import java.util.Comparator;
4+
import java.util.List;
5+
import java.util.ServiceLoader;
6+
import java.util.ServiceLoader.Provider;
7+
8+
import jakarta.ws.rs.ext.MessageBodyReader;
9+
import jakarta.ws.rs.ext.MessageBodyWriter;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import static org.junit.jupiter.api.Assertions.*;
14+
15+
public class ServiceLoaderIT {
16+
@Test
17+
public void testMessageBodyWriter() {
18+
@SuppressWarnings("rawtypes")
19+
final List<MessageBodyWriter> providers = ServiceLoader
20+
.load(MessageBodyWriter.class)
21+
.stream()
22+
.map(Provider<MessageBodyWriter>::get)
23+
.toList();
24+
25+
assertEquals(providers
26+
.stream()
27+
.map(w -> w.getClass())
28+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
29+
tools.jackson.jakarta.rs.xml.JacksonXMLProvider.class
30+
));
31+
}
32+
33+
@Test
34+
public void testMessageBodyReader() {
35+
@SuppressWarnings("rawtypes")
36+
final List<MessageBodyReader> providers = ServiceLoader
37+
.load(MessageBodyReader.class)
38+
.stream()
39+
.map(Provider<MessageBodyReader>::get)
40+
.toList();
41+
42+
assertEquals(providers
43+
.stream()
44+
.map(w -> w.getClass())
45+
.sorted(Comparator.comparing(Class::getSimpleName)).toList(), List.of(
46+
tools.jackson.jakarta.rs.xml.JacksonXMLProvider.class
47+
));
48+
}
49+
}

yaml/src/test/java/module-info.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,8 @@
2828
opens tools.jackson.jakarta.rs.yaml;
2929
opens tools.jackson.jakarta.rs.yaml.dw;
3030
opens tools.jackson.jakarta.rs.yaml.jersey;
31+
32+
// ServiceLoader tests
33+
uses jakarta.ws.rs.ext.MessageBodyWriter;
34+
uses jakarta.ws.rs.ext.MessageBodyReader;
3135
}

0 commit comments

Comments
 (0)