DOMElementWithCustomSerializerTest.java
package tools.jackson.databind.ext.xml;
import javax.xml.parsers.DocumentBuilderFactory;
import org.junit.jupiter.api.Test;
import org.w3c.dom.Element;
import tools.jackson.core.*;
import tools.jackson.databind.*;
import tools.jackson.databind.annotation.JsonSerialize;
import tools.jackson.databind.ser.std.StdSerializer;
import tools.jackson.databind.testutil.DatabindTestUtil;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests for verifying various issues with custom serializers.
*/
public class DOMElementWithCustomSerializerTest extends DatabindTestUtil
{
static class ElementSerializer extends StdSerializer<Element>
{
public ElementSerializer() { super(Element.class); }
@Override
public void serialize(Element value, JsonGenerator g, SerializationContext ctxt) {
g.writeString("element");
}
}
@JsonSerialize(using = ElementSerializer.class)
public static class ElementMixin {}
public static class Immutable {
protected int x() { return 3; }
protected int y() { return 7; }
}
/*
/**********************************************************************
/* Test methods
/**********************************************************************
*/
@Test
public void testCustomElementSerializer() throws Exception
{
ObjectMapper mapper = jsonMapperBuilder()
.addMixIn(Element.class, ElementMixin.class)
.build();
Element element = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument().createElement("el");
assertEquals("\"element\"", mapper.writeValueAsString(element));
}
}