package org.openntf.xpt.test.json;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.openntf.xpt.core.json.JsonBinderContainer;
import org.openntf.xpt.test.json.mock.UserMock;
import com.ibm.commons.util.io.json.JsonException;
import com.ibm.commons.util.io.json.JsonJavaFactory;
import com.ibm.commons.util.io.json.JsonJavaObject;
import com.ibm.commons.util.io.json.JsonParser;
public class Json2ObjectTest {
private final String RESULT = "{\"accountnumber\":42,\"accountobject\":42,\"name\":\"Marco M\\u00FCller\",\"salary\":123000,\"salaryobject\":123000,\"tags\":[\"Manager\",\"Developer\",\"Leader\"]}";
private final String RESULT_CHILDREND = "{\"accountnumber\":42,\"accountobject\":42,\"children\":[{\"accountnumber\":21,\"accountobject\":21,\"name\":\"Ren\\u00E9 Meier\",\"salary\":90000,\"salaryobject\":90000,\"tags\":[\"Developer\"]},{\"accountnumber\":19,\"accountobject\":19,\"name\":\"Cecile N\\u00FCnlist\",\"salary\":99000,\"salaryobject\":99000}],\"name\":\"Marco M\\u00FCller\",\"salary\":123000,\"salaryobject\":123000,\"tags\":[\"Manager\",\"Developer\",\"Leader\"]}";
@Test
public void testParseObjectFromString() throws JsonException {
JsonJavaFactory factory = JsonJavaFactory.instanceEx;
JsonJavaObject json = (JsonJavaObject) JsonParser.fromJson(factory, RESULT);
JsonBinderContainer container = new JsonBinderContainer();
UserMock userMock = new UserMock();
container.processJson2Object(json, userMock);
assertNotNull(userMock);
assertEquals("Marco Müller", userMock.getName());
assertEquals(42, userMock.getAccountNumber());
assertEquals(new Integer(42), userMock.getAccountObject());
assertEquals(3, userMock.getTags().size());
}
@Test
public void testParseObjectFromStringWithChildren() throws JsonException {
JsonJavaFactory factory = JsonJavaFactory.instanceEx;
JsonJavaObject json = (JsonJavaObject) JsonParser.fromJson(factory, RESULT_CHILDREND);
JsonBinderContainer container = new JsonBinderContainer();
UserMock userMock = new UserMock();
container.processJson2Object(json, userMock);
assertNotNull(userMock);
assertEquals("Marco Müller", userMock.getName());
assertEquals(42, userMock.getAccountNumber());
assertEquals(new Integer(42), userMock.getAccountObject());
assertEquals(3, userMock.getTags().size());
assertEquals(2, userMock.getChildren().size());
assertEquals("René Meier", userMock.getChildren().get(0).getName());
}
}