package org.zstack.test.core.keyvalue; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; import org.zstack.core.componentloader.ComponentLoader; import org.zstack.core.keyvalue.KeyValueFacade; import org.zstack.core.keyvalue.KeyValueQuery; import org.zstack.core.keyvalue.Op; import org.zstack.test.BeanConstructor; import org.zstack.test.DBUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** */ public class TestKeyValue1 { ComponentLoader loader; KeyValueFacade kvf; @Before public void setUp() throws Exception { DBUtil.reDeployDB(); BeanConstructor con = new BeanConstructor(); loader = con.build(); kvf = loader.getComponent(KeyValueFacade.class); } @Test public void test() { KeyValueTestEntity e = new KeyValueTestEntity(); e.list2 = new ArrayList<KeyValueTestEntity>(); e.list2.add(new KeyValueTestEntity()); e.list2.add(new KeyValueTestEntity()); kvf.persist(e); e = new KeyValueTestEntity(); e.list1.clear(); e.list1.add(99); kvf.persist(e); e = new KeyValueTestEntity(); e.list1.clear(); e.list1.add(100); kvf.persist(e); e = new KeyValueTestEntity(); e.dict = new HashMap<String, String>(); kvf.persist(e); e = new KeyValueTestEntity(); e.dict2 = new HashMap<String, KeyValueTestEntity>(); e.dict2.put("xxx", new KeyValueTestEntity()); kvf.persist(e); e = new KeyValueTestEntity(); e.child = new KeyValueTestEntity(); e.child.list1.clear(); e.child.list1.add(11); e.child.list1.add(22); kvf.persist(e); e = new KeyValueTestEntity(); e.d = null; kvf.persist(e); KeyValueQuery<KeyValueTestEntity> q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getDict2().get("xxx").getC2(), Op.EQ, "hello world"); KeyValueTestEntity te = q.find(); Assert.assertNotNull(te); Assert.assertEquals("hello world", te.c2); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getList1().get(-1), Op.IN, 99, 100); List<KeyValueTestEntity> tes = q.list(); Assert.assertEquals(2, tes.size()); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getList1().get(10), Op.NOT_IN, 99, 100); tes = q.list(); Assert.assertEquals(0, tes.size()); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getChild().getList1().get(0), Op.EQ, 11); q.and(q.entity().getChild().getList1().get(1), Op.EQ, 22); te = q.find(); Assert.assertNotNull(te); Assert.assertTrue(te.getChild().getList1().contains(11)); Assert.assertTrue(te.getChild().getList1().contains(22)); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getChild().getA1(), Op.NOT_NULL); tes = q.list(); Assert.assertEquals(1, tes.size()); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getC2(), Op.NULL); tes = q.list(); Assert.assertEquals(0, tes.size()); q = new KeyValueQuery<KeyValueTestEntity>(KeyValueTestEntity.class); q.and(q.entity().getD(), Op.NULL); q.and(q.entity().getA1(), Op.EQ, 10); tes = q.list(); Assert.assertEquals(1, tes.size()); } }