Search in sources :

Example 1 with XWikiHibernateRecycleBinStore

use of com.xpn.xwiki.store.XWikiHibernateRecycleBinStore in project xwiki-platform by xwiki.

the class ImportTest method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    this.pack = new Package();
    this.xwiki = new XWiki();
    getContext().setWiki(this.xwiki);
    this.xwiki.setConfig(new XWikiConfig());
    Mock mockLocalizationContext = registerMockComponent(LocalizationContext.class);
    mockLocalizationContext.stubs().method("getCurrentLocale").will(returnValue(Locale.ROOT));
    // mock a store that would also handle translations
    this.mockXWikiStore = mock(XWikiHibernateStore.class, new Class[] { XWiki.class, XWikiContext.class }, new Object[] { this.xwiki, getContext() });
    this.mockXWikiStore.stubs().method("loadXWikiDoc").will(new CustomStub("Implements XWikiStoreInterface.loadXWikiDoc") {

        @Override
        public Object invoke(Invocation invocation) throws Throwable {
            XWikiDocument shallowDoc = (XWikiDocument) invocation.parameterValues.get(0);
            String documentKey = shallowDoc.getFullName();
            if (!shallowDoc.getLanguage().equals("")) {
                documentKey += "." + shallowDoc.getLanguage();
            }
            if (docs.containsKey(documentKey)) {
                return docs.get(documentKey);
            } else {
                return shallowDoc;
            }
        }
    });
    this.mockXWikiStore.stubs().method("saveXWikiDoc").will(new CustomStub("Implements XWikiStoreInterface.saveXWikiDoc") {

        @Override
        public Object invoke(Invocation invocation) throws Throwable {
            XWikiDocument document = (XWikiDocument) invocation.parameterValues.get(0);
            document.setNew(false);
            document.setStore((XWikiStoreInterface) mockXWikiStore.proxy());
            // if this is a translated document, append a language prefix
            String documentKey = document.getFullName();
            if (!document.getLanguage().equals("")) {
                documentKey += "." + document.getLanguage();
            }
            docs.put(documentKey, document);
            return null;
        }
    });
    this.mockXWikiStore.stubs().method("deleteXWikiDoc").will(new CustomStub("Implements XWikiStoreInterface.deleteXWikiDoc") {

        @Override
        public Object invoke(Invocation invocation) throws Throwable {
            XWikiDocument document = (XWikiDocument) invocation.parameterValues.get(0);
            // delete the document from the map
            String documentKey = document.getFullName();
            if (!document.getLanguage().equals("")) {
                documentKey += "." + document.getLanguage();
            }
            docs.remove(documentKey);
            return null;
        }
    });
    this.mockXWikiStore.stubs().method("getTranslationList").will(new CustomStub("Implements XWikiStoreInterface.getTranslationList") {

        @Override
        public Object invoke(Invocation invocation) throws Throwable {
            XWikiDocument document = (XWikiDocument) invocation.parameterValues.get(0);
            // search for this document in the map and return it's translations
            List translationList = new ArrayList();
            for (Iterator pairsIt = docs.entrySet().iterator(); pairsIt.hasNext(); ) {
                Map.Entry currentEntry = (Map.Entry) pairsIt.next();
                if (((String) currentEntry.getKey()).startsWith(document.getFullName()) && !((XWikiDocument) currentEntry.getValue()).getLanguage().equals("")) {
                    // yeeey, it's a translation
                    translationList.add(((XWikiDocument) currentEntry.getValue()).getLanguage());
                }
            }
            return translationList;
        }
    });
    this.mockXWikiStore.stubs().method("injectCustomMapping").will(returnValue(false));
    this.mockRecycleBinStore = mock(XWikiHibernateRecycleBinStore.class, new Class[] { XWikiContext.class }, new Object[] { getContext() });
    this.mockRecycleBinStore.stubs().method("saveToRecycleBin").will(VoidStub.INSTANCE);
    this.mockXWikiVersioningStore = mock(XWikiHibernateVersioningStore.class, new Class[] { XWiki.class, XWikiContext.class }, new Object[] { this.xwiki, getContext() });
    this.mockXWikiVersioningStore.stubs().method("getXWikiDocumentArchive").will(returnValue(null));
    this.mockXWikiVersioningStore.stubs().method("resetRCSArchive").will(returnValue(null));
    this.xwiki.setStore((XWikiStoreInterface) mockXWikiStore.proxy());
    this.xwiki.setRecycleBinStore((XWikiHibernateRecycleBinStore) this.mockRecycleBinStore.proxy());
    this.xwiki.setVersioningStore((XWikiVersioningStoreInterface) mockXWikiVersioningStore.proxy());
    // mock the right service
    this.mockRightService = mock(XWikiRightService.class);
    this.mockRightService.stubs().method("checkAccess").will(returnValue(true));
    this.mockRightService.stubs().method("hasWikiAdminRights").will(returnValue(true));
    this.mockRightService.stubs().method("hasProgrammingRights").will(returnValue(true));
    this.xwiki.setRightService((XWikiRightService) this.mockRightService.proxy());
}
Also used : Invocation(org.jmock.core.Invocation) XWikiHibernateVersioningStore(com.xpn.xwiki.store.XWikiHibernateVersioningStore) ArrayList(java.util.ArrayList) XWiki(com.xpn.xwiki.XWiki) XWikiContext(com.xpn.xwiki.XWikiContext) Mock(org.jmock.Mock) XWikiStoreInterface(com.xpn.xwiki.store.XWikiStoreInterface) XWikiDocument(com.xpn.xwiki.doc.XWikiDocument) XWikiHibernateStore(com.xpn.xwiki.store.XWikiHibernateStore) CustomStub(org.jmock.core.stub.CustomStub) Iterator(java.util.Iterator) XWikiHibernateRecycleBinStore(com.xpn.xwiki.store.XWikiHibernateRecycleBinStore) XWikiRightService(com.xpn.xwiki.user.api.XWikiRightService) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) XWikiConfig(com.xpn.xwiki.XWikiConfig)

Aggregations

XWiki (com.xpn.xwiki.XWiki)1 XWikiConfig (com.xpn.xwiki.XWikiConfig)1 XWikiContext (com.xpn.xwiki.XWikiContext)1 XWikiDocument (com.xpn.xwiki.doc.XWikiDocument)1 XWikiHibernateRecycleBinStore (com.xpn.xwiki.store.XWikiHibernateRecycleBinStore)1 XWikiHibernateStore (com.xpn.xwiki.store.XWikiHibernateStore)1 XWikiHibernateVersioningStore (com.xpn.xwiki.store.XWikiHibernateVersioningStore)1 XWikiStoreInterface (com.xpn.xwiki.store.XWikiStoreInterface)1 XWikiRightService (com.xpn.xwiki.user.api.XWikiRightService)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1 Mock (org.jmock.Mock)1 Invocation (org.jmock.core.Invocation)1 CustomStub (org.jmock.core.stub.CustomStub)1