package org.test4j.json.helper;
import java.util.Map;
import org.junit.Test;
import org.test4j.json.JSON;
import org.test4j.junit.Test4J;
import org.test4j.junit.annotations.DataFrom;
public class JSONSingleTest extends Test4J {
@Test
public void testToClazzName() {
JSONSingle bean = new JSONSingle();
bean.setValue("com.test4j.User@12345");
String clazzname = bean.toClazzName();
want.string(clazzname).isEqualTo("com.test4j.User");
}
@Test
public void testToClazzName_NoRef() {
JSONSingle bean = new JSONSingle();
bean.setValue("com.test4j.User");
String clazzname = bean.toClazzName();
want.string(clazzname).isEqualTo("com.test4j.User");
}
@Test
public void testToReferenceID() {
JSONSingle bean = new JSONSingle();
bean.setValue("com.test4j.User@12345");
String clazzname = bean.toReferenceID();
want.string(clazzname).isEqualTo("@12345");
}
@Test
public void testToReferenceID_NoRef() {
JSONSingle bean = new JSONSingle();
bean.setValue("com.test4j.User");
String clazzname = bean.toReferenceID();
want.string(clazzname).isNull();
}
@Test
@DataFrom("dataForToPrimitiveValue")
public void testToPrimitiveValue(String input, Object expected) {
Map<String, Object> actual = JSON.toObject(input);
want.object(actual).propertyEq("key", expected);
}
public static DataIterator dataForToPrimitiveValue() {
return new DataIterator() {
{
data("{key:null}", null);
data("{key:1}", 1);
data("{key:1L}", 1L);
data("{key:0.7}", 0.7);
data("{key:0.7f}", 0.7F);
data("{key:0.7D}", 0.7D);
data("{key:1xx}", "1xx");
data("{key:xxxx}", "xxxx");
}
};
}
@Test
public void testToPrimitiveValue_Array() {
String json = "[1,2L,3.5,4D,true,false]";
Object[] actual = JSON.toObject(json, Object[].class);
want.array(actual).reflectionEq(new Object[] { 1, 2L, 3.5, 4, true, false });
}
}