Gson Serializer/Deserializer are now correctly registered service when found on the classpath

Added test to other serializer implementations as well

Fixes: #563
This commit is contained in:
Brian Demers 2020-02-24 12:39:48 -05:00 committed by Brian Demers
parent 0fd59efc93
commit 111633fa88
9 changed files with 50 additions and 2 deletions

View File

@ -5,6 +5,7 @@
This patch release:
* Fixes issue when using Java 9+ `Map.of` with JacksonDeserializer which resulted in an NullPointerException
* Fixes issue preventing Gson seralizer/deserializer implementation from being detected automatically
### 0.11.0

View File

@ -17,14 +17,22 @@ package io.jsonwebtoken.gson.io
import com.google.gson.Gson
import io.jsonwebtoken.io.DeserializationException
import io.jsonwebtoken.io.Deserializer
import io.jsonwebtoken.lang.Strings
import org.junit.Test
import static org.easymock.EasyMock.*
import static org.junit.Assert.*
import static org.hamcrest.CoreMatchers.instanceOf
class GsonDeserializerTest {
@Test
void loadService() {
def deserializer = ServiceLoader.load(Deserializer).iterator().next()
assertThat(deserializer, instanceOf(GsonDeserializer))
}
@Test
void testDefaultConstructor() {
def deserializer = new GsonDeserializer()

View File

@ -15,16 +15,25 @@
*/
package io.jsonwebtoken.gson.io
import io.jsonwebtoken.io.Deserializer
import io.jsonwebtoken.io.Serializer
import io.jsonwebtoken.lang.Strings
import org.junit.Test
import static org.easymock.EasyMock.*
import static org.junit.Assert.*
import static org.hamcrest.CoreMatchers.instanceOf
import com.google.gson.Gson
import io.jsonwebtoken.io.SerializationException
class GsonSerializerTest {
@Test
void loadService() {
def serializer = ServiceLoader.load(Serializer).iterator().next()
assertThat(serializer, instanceOf(GsonSerializer))
}
@Test
void testDefaultConstructor() {
def serializer = new GsonSerializer()

View File

@ -17,6 +17,7 @@ package io.jsonwebtoken.jackson.io
import com.fasterxml.jackson.databind.ObjectMapper
import io.jsonwebtoken.io.DeserializationException
import io.jsonwebtoken.io.Deserializer
import io.jsonwebtoken.io.Encoders
import io.jsonwebtoken.jackson.io.stubs.CustomBean
import io.jsonwebtoken.lang.Maps
@ -25,8 +26,14 @@ import org.junit.Test
import static org.easymock.EasyMock.*
import static org.junit.Assert.*
import static org.hamcrest.CoreMatchers.instanceOf
class JacksonDeserializerTest {
@Test
void loadService() {
def deserializer = ServiceLoader.load(Deserializer).iterator().next()
assertThat(deserializer, instanceOf(JacksonDeserializer))
}
@Test
void testDefaultConstructor() {

View File

@ -18,14 +18,22 @@ package io.jsonwebtoken.jackson.io
import com.fasterxml.jackson.core.JsonProcessingException
import com.fasterxml.jackson.databind.ObjectMapper
import io.jsonwebtoken.io.SerializationException
import io.jsonwebtoken.io.Serializer
import io.jsonwebtoken.lang.Strings
import org.junit.Test
import static org.easymock.EasyMock.*
import static org.junit.Assert.*
import static org.hamcrest.CoreMatchers.instanceOf
class JacksonSerializerTest {
@Test
void loadService() {
def serializer = ServiceLoader.load(Serializer).iterator().next()
assertThat(serializer, instanceOf(JacksonSerializer))
}
@Test
void testDefaultConstructor() {
def serializer = new JacksonSerializer()

View File

@ -16,13 +16,21 @@
package io.jsonwebtoken.orgjson.io
import io.jsonwebtoken.io.DeserializationException
import io.jsonwebtoken.io.Deserializer
import io.jsonwebtoken.lang.Strings
import io.jsonwebtoken.orgjson.io.OrgJsonDeserializer
import org.junit.Test
import static org.hamcrest.CoreMatchers.instanceOf
import static org.junit.Assert.*
class OrgJsonDeserializerTest {
@Test
void loadService() {
def deserializer = ServiceLoader.load(Deserializer).iterator().next()
assertThat(deserializer, instanceOf(OrgJsonDeserializer))
}
@Test(expected=IllegalArgumentException)
void testNullArgument() {
def d = new OrgJsonDeserializer()

View File

@ -17,15 +17,16 @@ package io.jsonwebtoken.orgjson.io
import io.jsonwebtoken.SignatureAlgorithm
import io.jsonwebtoken.io.SerializationException
import io.jsonwebtoken.io.Serializer
import io.jsonwebtoken.lang.DateFormats
import io.jsonwebtoken.lang.Strings
import io.jsonwebtoken.orgjson.io.OrgJsonSerializer
import org.json.JSONObject
import org.json.JSONString
import org.junit.Before
import org.junit.Test
import static org.junit.Assert.*
import static org.hamcrest.CoreMatchers.instanceOf
class OrgJsonSerializerTest {
@ -41,6 +42,12 @@ class OrgJsonSerializerTest {
return new String(bytes, Strings.UTF_8)
}
@Test
void loadService() {
def serializer = ServiceLoader.load(Serializer).iterator().next()
assertThat(serializer, instanceOf(OrgJsonSerializer))
}
@Test(expected = SerializationException)
void testInvalidArgument() {
s.serialize(new Object())