package org.example;
import com.avaje.ebean.Ebean;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.example.domain.SimpleDocUsingJsonNode;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class SimpleDocWithJsonNodeTest extends ExampleBaseTestCase {
@Test
public void test() throws IOException {
ObjectMapper mapper = new ObjectMapper();
String rawJson = "{\"docName\":\"rob doc\", \"docScore\":234}";
JsonNode jsonNode = mapper.readTree(rawJson);
SimpleDocUsingJsonNode doc = new SimpleDocUsingJsonNode();
doc.setName("doc1");
doc.setContent(jsonNode);
doc.save();
String fullJson = Ebean.json().toJson(doc);
SimpleDocUsingJsonNode doc2 = Ebean.json().toBean(SimpleDocUsingJsonNode.class, fullJson);
assertEquals(doc.getId(), doc2.getId());
assertEquals(doc.getName(), doc2.getName());
assertEquals(doc.getVersion(), doc2.getVersion());
assertEquals(doc.getContent().toString(), doc2.getContent().toString());
SimpleDocUsingJsonNode doc3 = Ebean.find(SimpleDocUsingJsonNode.class, doc.getId());
assertEquals(doc.getId(), doc3.getId());
assertEquals(doc.getName(), doc3.getName());
assertEquals(doc.getVersion(), doc3.getVersion());
assertEquals(doc.getContent().toString(), doc3.getContent().toString());
}
@Test
public void testNullValue() throws IOException {
SimpleDocUsingJsonNode doc = new SimpleDocUsingJsonNode();
doc.setName("doc1");
Ebean.save(doc);
String fullJson = Ebean.json().toJson(doc);
SimpleDocUsingJsonNode doc2 = Ebean.json().toBean(SimpleDocUsingJsonNode.class, fullJson);
assertEquals(doc.getId(), doc2.getId());
assertEquals(doc.getName(), doc2.getName());
assertEquals(doc.getVersion(), doc2.getVersion());
assertNull(doc2.getContent());
SimpleDocUsingJsonNode doc3 = SimpleDocUsingJsonNode.find.byId(doc.getId());
assertEquals(doc.getId(), doc3.getId());
assertEquals(doc.getName(), doc3.getName());
assertEquals(doc.getVersion(), doc3.getVersion());
assertNull(doc3.getContent());
}
}