package com.orientechnologies.orient.core.db.hook; import static org.testng.AssertJUnit.assertEquals; import java.util.concurrent.atomic.AtomicInteger; import org.testng.annotations.Test; import com.orientechnologies.orient.core.config.OGlobalConfiguration; import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; import com.orientechnologies.orient.core.hook.ORecordHook; import com.orientechnologies.orient.core.record.ORecord; import com.orientechnologies.orient.core.record.impl.ODocument; import com.orientechnologies.orient.core.serialization.serializer.record.string.ORecordSerializerSchemaAware2CSV; public class HookRegisterRemoveTest { @Test public void addAndRemoveHookTest() { ODatabaseDocumentTx db = new ODatabaseDocumentTx("memory:" + HookRegisterRemoveTest.class.getSimpleName()); db.create(); final AtomicInteger integer = new AtomicInteger(0); ORecordHook iHookImpl = new ORecordHook() { @Override public void onUnregister() { } @Override public RESULT onTrigger(TYPE iType, ORecord iRecord) { integer.incrementAndGet(); return null; } @Override public DISTRIBUTED_EXECUTION_MODE getDistributedExecutionMode() { return null; } }; db.registerHook(iHookImpl); db.save(new ODocument().field("test", "test")); assertEquals(3, integer.get()); db.unregisterHook(iHookImpl); db.save(new ODocument()); assertEquals(3, integer.get()); db.drop(); } }