objectdb_t.java
来自「SRI international 发布的OAA框架软件」· Java 代码 · 共 88 行
JAVA
88 行
package com.sri.test.javanetbridge;
import junit.framework.TestCase;
import junit.framework.Test;
import junit.framework.TestSuite;
import com.sri.sedc.javanetbridge.ObjectNotFoundException;
import com.sri.oaa2.icl.IclList;
import com.sri.oaa2.icl.IclStruct;
import com.sri.oaa2.icl.IclInt;
import com.sri.sedc.javanetbridge.JavaNetBridgeFactory;
import com.sri.sedc.javanetbridge.ObjectDB;
/**
* Unit tests for ObjectDB.
*/
public class ObjectDB_T extends TestCase {
public ObjectDB_T(String name) {
super(name);
}
protected void debug(String msg) {
System.out.println(msg);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
return new TestSuite(ObjectDB_T.class);
}
public void doTestForObj(Object newObj) throws Exception {
ObjectDB db = JavaNetBridgeFactory.getFactory().newObjectDB();
try {
Object ret = db.getObjFromId(12);
assertTrue("Retrieved object from empty db = " + ret, false);
} catch (ObjectNotFoundException e) {
// OK
}
int id = db.addObjRef(newObj);
Object ret = db.getObjFromId(id);
// Use == to make sure the objects themselves are equivalent
assertTrue(ret == newObj);
db.addObjRef(ret);
db.addObjRef(ret);
int refCount = db.releaseObjRef(id);
assertTrue("refCount should be 2 but is " + refCount, refCount == 2);
assertTrue(db.releaseObjRef(newObj) == 1);
assertTrue(db.releaseObjRef(id) == 0);
}
public void testOne() throws Exception {
doTestForObj(new Object());
doTestForObj("");
doTestForObj(new IclList());
doTestForObj(new IclStruct("testStruct", new IclInt()));
}
public void testMultiple() throws Exception {
ObjectDB db = JavaNetBridgeFactory.getFactory().newObjectDB();
Object obj1 = null, obj2 = null, obj3 = null, obj4 = null;
int id1 = db.addObjRef(obj1 = new Object());
int id2 = db.addObjRef(obj2 = "");
int id3 = db.addObjRef(obj3 = new IclList());
int id4 = db.addObjRef(obj4 = new IclStruct("testStruct", new IclInt()));
db.getObjFromId(id1);
db.getObjFromId(id2);
db.getObjFromId(id3);
db.getObjFromId(id4);
assertTrue(db.releaseObjRef(obj3) == 0);
try {
db.getObjFromId(id3);
assertTrue("Retrieved object when it should not be located in db", false);
} catch (ObjectNotFoundException e) {
// OK
}
assertTrue("Received different id", id2 == db.addObjRef(obj2));
assertTrue(db.releaseObjRef(id2) == 1);
assertTrue(db.releaseObjRef(obj2) == 0);
assertTrue(db.getObjFromId(id1) == obj1);
int refCount = db.releaseObjRef(obj1);
assertTrue("refCount = " + refCount, refCount == 0);
assertTrue(db.releaseObjRef(obj4) == 0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?