package com.celements.parents; import static org.easymock.EasyMock.*; import static org.junit.Assert.*; import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import org.xwiki.model.EntityType; import org.xwiki.model.reference.DocumentReference; import com.celements.common.test.AbstractBridgedComponentTestCase; import com.xpn.xwiki.XWiki; import com.xpn.xwiki.XWikiContext; import com.xpn.xwiki.XWikiException; import com.xpn.xwiki.doc.XWikiDocument; import com.xpn.xwiki.web.Utils; public class XDocParentsTest extends AbstractBridgedComponentTestCase { private XWikiContext context; private XWiki xwiki; private XDocParents xdocParents; @Before public void setUp_WebUtilsServiceTest() throws Exception { context = getContext(); xwiki = getWikiMock(); xdocParents = (XDocParents) Utils.getComponent(IDocParentProviderRole.class, XDocParents.DOC_PROVIDER_NAME); expect(xwiki.isVirtualMode()).andReturn(true).anyTimes(); } @Test public void testGetDocumentParentsList() throws XWikiException { DocumentReference docRef = new DocumentReference(context.getDatabase(), "mySpace", "myDoc"); DocumentReference parentRef1 = new DocumentReference(context.getDatabase(), "mySpace", "parent1"); DocumentReference parentRef2 = new DocumentReference(context.getDatabase(), "mySpace", "parent2"); XWikiDocument doc = new XWikiDocument(docRef); XWikiDocument docP1 = new XWikiDocument(parentRef1); XWikiDocument docP2 = new XWikiDocument(parentRef2); docP1.setParentReference(parentRef2.extractReference(EntityType.DOCUMENT)); doc.setParentReference(parentRef1.extractReference(EntityType.DOCUMENT)); expect(xwiki.getDocument(eq(docRef), same(context))).andReturn(doc).once(); expect(xwiki.getDocument(eq(parentRef1), same(context))).andReturn(docP1).once(); expect(xwiki.exists(eq(parentRef1), same(context))).andReturn(true).anyTimes(); expect(xwiki.getDocument(eq(parentRef2), same(context))).andReturn(docP2).once(); expect(xwiki.exists(eq(parentRef2), same(context))).andReturn(true).anyTimes(); List<DocumentReference> docParentsList = Arrays.asList(parentRef1, parentRef2); replayDefault(); assertEquals(docParentsList, xdocParents.getDocumentParentsList(docRef)); verifyDefault(); } }