package org.archive.format.json; import org.archive.util.TestUtils; import org.json.JSONException; import org.json.JSONObject; import junit.framework.TestCase; public class JSONViewTest extends TestCase { public int getInt(byte b[]) { return b[0] & 0xff; } public void testBytes() throws JSONException { JSONObject o = new JSONObject(); o.append("name1", "val\\rue1"); String json = o.toString(); System.out.format("once: (%s)\n",json); JSONObject o2 = new JSONObject(json); System.out.format("twice: (%s)\n",o2.toString()); byte b[] = new byte[2]; for(int i = 0; i < 256; i++) { b[0] = (byte) i; int gi = getInt(b); System.out.format("I(%d) gi(%d)\n",i,gi); } } public void testApply() throws JSONException { String json1S = "{\"url\":\"a\",\"link\":[{\"zz\":\"1\",\"qq\":\"qa\"},{\"zz2\":\"2\",\"qq\":\"qb\"},{\"zz\":\"3\",\"qq\":\"qc\"},{\"zz\":\"4\"}]}"; JSONObject json1 = new JSONObject(json1S); JSONView view = new JSONView("url","@link.zz"); TestUtils.assertLoLMatches(new String[][]{{"a","1"},{"a",""},{"a","3"},{"a","4"}}, view.apply(json1)); view = new JSONView("url","@link.{zz,qq}"); TestUtils.assertLoLMatches(new String[][]{{"a","1","qa"},{"a","","qb"},{"a","3","qc"},{"a","4",""}}, view.apply(json1)); } }