package com.nominanuda.dataobject.schema;
import static org.junit.Assert.*;
import java.io.InputStream;
import java.io.StringReader;
import org.junit.Test;
import com.nominanuda.dataobject.DataStruct;
import com.nominanuda.dataobject.DataStructHelper;
import com.nominanuda.dataobject.transform.DevNullJsonContentHandler;
import com.nominanuda.dataobject.transform.JsonPipeline;
public class FullValidatorTest {
@Test
public void test() throws Exception {
InputStream schema = getClass().getResourceAsStream("sampleschema.jcl");
JclValidator validator = new JclValidator();
validator.setSchema(schema);
String[] jsons = {
"User::{name:'foo',password:'bar'}",
"User::{name:'foo',password:'bar',addr:{city:null}}",
};
for(String json : jsons) {
String type = json.split("::")[0];
DataStruct ds = DataStructHelper.STRUCT.parse(json.split("::")[1], true);
JsonPipeline p = validator.buildValidatorPipe(type).withLooseParser();
p.build(new StringReader(json.split("::")[1]), new DevNullJsonContentHandler()).run();
assertTrue(validator.buildValidatorFor(ds, type).apply(ds));
}
}
}