예제 #1
0
  public void test_unregister_1() throws PrologException, IOException {
    // Test invalid object_id unregistration
    theory = "demo(Obj1) :- unregister(Obj1).";
    engine.setTheory(new Theory(theory));
    info = engine.solve("demo(Res).");
    assertEquals(true, info.isHalted());

    setPath(true);
    theory =
        "demo(Obj) :- \n"
            + "set_classpath(["
            + paths
            + "]), \n"
            + "java_object('Counter', [], Obj), \n"
            + "Obj <- inc, \n"
            + "Obj <- inc, \n"
            + "register(Obj), unregister(Obj).";
    engine.setTheory(new Theory(theory));
    info = engine.solve("demo(Res).");
    assertEquals(true, info.isSuccess());
    OOLibrary lib = (OOLibrary) engine.getLibrary("alice.tuprolog.lib.OOLibrary");
    Struct id = (Struct) info.getTerm("Res");
    Object obj = lib.getRegisteredObject(id);
    assertNull(obj);
  }