package org.compass.core.test.json.array; import org.compass.core.CompassSession; import org.compass.core.CompassTransaction; import org.compass.core.Resource; import org.compass.core.json.RawAliasedJsonObject; import org.compass.core.test.AbstractTestCase; /** * @author kimchy */ public class SimpleJsonArrayTests extends AbstractTestCase { protected String[] getMappings() { return new String[]{"json/array/mapping.cpm.xml"}; } public void testDotPath() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); RawAliasedJsonObject jsonObject = new RawAliasedJsonObject("a", "{id : 1, value : \"test\", arr : [1, 2]}"); session.save(jsonObject); assertEquals(1, session.find("a.value:test").length()); assertEquals(1, session.find("a.arr:1").length()); assertEquals(1, session.find("a.arr:2").length()); tr.commit(); session.close(); } public void testSimpleJsonArray() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); RawAliasedJsonObject jsonObject = new RawAliasedJsonObject("a", "{id : 1, value : \"test\", arr : [1, 2]}"); session.save(jsonObject); Resource resource = session.loadResource("a", 1); assertEquals("test", resource.getValue("value")); assertEquals(2, resource.getProperties("arr").length); assertEquals("1", resource.getValues("arr")[0]); assertEquals("2", resource.getValues("arr")[1]); assertEquals(new Integer(1), resource.getObjects("arr")[0]); assertEquals(new Integer(2), resource.getObjects("arr")[1]); tr.commit(); session.close(); } public void testSimpleJsonArrayWithIndexName() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); RawAliasedJsonObject jsonObject = new RawAliasedJsonObject("b", "{id : 1, value : \"test\", arr : [1, 2]}"); session.save(jsonObject); Resource resource = session.loadResource("b", 1); assertEquals("test", resource.getValue("value")); assertEquals(2, resource.getProperties("xarr").length); assertEquals("1", resource.getValues("xarr")[0]); assertEquals("2", resource.getValues("xarr")[1]); tr.commit(); session.close(); } public void testSimpleJsonArrayWithObject() { CompassSession session = openSession(); RawAliasedJsonObject jsonObject = new RawAliasedJsonObject("c", "{id : 1, value : \"test\", arr : [{ arr-value : \"test1\" }, { arr-value : \"test2\" }]}"); session.save(jsonObject); Resource resource = session.loadResource("c", 1); assertEquals("test", resource.getValue("value")); assertEquals(2, resource.getValues("arr-value").length); assertEquals("test1", resource.getValues("arr-value")[0]); assertEquals("test2", resource.getValues("arr-value")[1]); session.commit(); } }