package org.test4j.json.encoder;
import org.test4j.json.JSON;
import org.test4j.json.encoder.beans.test.User;
import org.test4j.json.encoder.object.PoJoEncoder;
import org.test4j.json.helper.JSONFeature;
import org.testng.annotations.Test;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test(groups = { "test4j", "json" })
public class PropertyEncoderTest extends EncoderTest {
String json = "";
User user = new User() {
{
this.setId(123);
this.setName("darui.wu");
this.setAge(45);
this.setSalary(234.56d);
}
};
@Test
public void testEncodeValue() {
JSONEncoder encoder = new PoJoEncoder(User.class);
encoder.setFeatures(JSONFeature.UseSingleQuote, JSONFeature.IgnoreExplicitFieldType);
encoder.encode(user, writer, references);
this.json = writer.toString();
want.string(json).start("{#class:'org.test4j.json.encoder.beans.test.User@").contains("id:123")
.contains("name:'darui.wu'").contains("age:45").contains("salary:234.56").contains("isFemale:false");
}
@Test(dependsOnMethods = "testEncodeValue")
public void testDecodeValue() {
User result = JSON.toObject(json);
want.object(user).reflectionEq(result);
}
}