package com.orientechnologies.orient.core.db.tool; import org.mockito.Mockito; import org.testng.Assert; import org.testng.annotations.Test; import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal; import com.orientechnologies.orient.core.db.record.OIdentifiable; import com.orientechnologies.orient.core.id.ORecordId; import com.orientechnologies.orient.core.index.OIndex; import com.orientechnologies.orient.core.metadata.schema.OType; import com.orientechnologies.orient.core.record.impl.ODocument; public class TestImportRewriteLinks { @Test public void testNestedLinkRewrite() { // Fx for remove dirty database in the thread local ODatabaseRecordThreadLocal.INSTANCE.remove(); OIndex<OIdentifiable> mapper = Mockito.mock(OIndex.class); Mockito.when(mapper.get(new ORecordId(10, 4))).thenReturn(new ORecordId(10, 3)); ODocument doc = new ODocument(); ODocument emb = new ODocument(); doc.field("emb", emb, OType.EMBEDDED); ODocument emb1 = new ODocument(); emb.field("emb1", emb1, OType.EMBEDDED); emb1.field("link", new ORecordId(10, 4)); ODatabaseImport.rewriteLinksInDocument(doc, mapper); Assert.assertEquals(emb1.field("link"), new ORecordId(10, 3)); } }