Skip to content

Commit

Permalink
Added code coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
essiembre committed Jul 31, 2024
1 parent d9af88a commit 6677dbd
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ public class JsonXmlCollectionSerializer<T extends Collection<?>>
private BeanProperty currentProperty;
private final JsonSerializer<?> defaultSerializer;

//NOTE: default empty constructor required for unit test
JsonXmlCollectionSerializer() {
defaultSerializer = null;
}


@Override
public JsonSerializer<?> createContextual(
SerializerProvider prov, BeanProperty property)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatNoException;

import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Collection;
Expand All @@ -28,6 +29,11 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.exc.StreamWriteException;
import com.fasterxml.jackson.databind.DatabindException;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.norconex.commons.lang.bean.BeanMapper;
import com.norconex.commons.lang.bean.BeanMapper.Format;

Expand Down Expand Up @@ -71,6 +77,19 @@ void testXmlTagNames() {
);
}

@Test
void testNullCollection()
throws StreamWriteException, DatabindException, IOException {
assertThatNoException().isThrownBy(() -> {
var out = new StringWriter();
var obj = new ObjectWithNullList();
obj.nullList = null;
BeanMapper.DEFAULT.write(obj, out, Format.XML);
BeanMapper.DEFAULT.write(obj, out, Format.JSON);
BeanMapper.DEFAULT.write(obj, out, Format.YAML);
});
}

@Data
static class CollectionHolder {

Expand All @@ -94,4 +113,10 @@ static class SomeEntry {
private int propc;
}

@Data
@JsonInclude(value = Include.ALWAYS, content = Include.ALWAYS)
static class ObjectWithNullList {
@JsonSerialize(nullsUsing = JsonXmlCollectionSerializer.class)
private List<String> nullList = null;
}
}

0 comments on commit 6677dbd

Please sign in to comment.