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());
}
Aggregations