this.mockGroupService = mock(XWikiGroupService.class, new Class[] {}, new Object[] {});
this.mockGroupService.stubs().method("getAllGroupsNamesForMember").will(returnValue(Collections.EMPTY_LIST));
this.mockGroupService.stubs().method("getAllMatchedGroups").will(returnValue(Collections.EMPTY_LIST));
Mock mockXWiki = mock(XWiki.class, new Class[] {}, new Object[] {});
mockXWiki.stubs().method("getStore").will(returnValue(mockStore.proxy()));
mockXWiki.stubs().method("getGroupService").will(returnValue(mockGroupService.proxy()));
mockXWiki.stubs().method("getCacheFactory").will(returnValue(this.cacheFactory));
mockXWiki.stubs().method("getXWikiPreference").will(returnValue(null));
mockXWiki.stubs().method("getXWikiPreferenceAsInt").will(throwException(new NumberFormatException("null")));
mockXWiki.stubs().method("isVirtualMode").will(returnValue(this.isVirtualMode));
mockXWiki.stubs().method("getDefaultDocumentSyntax").will(returnValue(Syntax.XWIKI_1_0.toIdString()));
mockXWiki.stubs().method("Param").will(new CustomStub("Implements XWiki.Param")
{
public Object invoke(Invocation invocation) throws Throwable
{
return properties.getProperty((String) invocation.parameterValues.get(0));
}
});
mockXWiki.stubs().method("ParamAsLong").will(new CustomStub("Implements XWiki.ParamAsLong")
{
public Object invoke(Invocation invocation) throws Throwable
{
return Long.parseLong(properties.getProperty((String) invocation.parameterValues.get(0)));
}
});
mockXWiki.stubs().method("getDocument").will(new CustomStub("Implements XWiki.getDocument")
{
public Object invoke(Invocation invocation) throws Throwable
{
Object document = invocation.parameterValues.get(0);
if (document instanceof String) {
return getDocument((String) document);
} else {
return getDocument((DocumentReference) document);
}
}
});
mockXWiki.stubs().method("saveDocument").will(new CustomStub("Implements XWiki.saveDocument")
{
public Object invoke(Invocation invocation) throws Throwable
{
saveDocument((XWikiDocument) invocation.parameterValues.get(0));
return null;
}
});
mockXWiki.stubs().method("exists").will(new CustomStub("Implements XWiki.exists")
{
public Object invoke(Invocation invocation) throws Throwable
{
return documentExists((String) invocation.parameterValues.get(0));
}
});
mockXWiki.stubs().method("getXClass").will(new CustomStub("Implements XWiki.getClass")
{
public Object invoke(Invocation invocation) throws Throwable
{
return getDocument(localEntityReferenceSerializer.serialize((EntityReference) invocation.parameterValues.get(0))).getXClass();
}
});
mockXWiki.stubs().method("search").will(returnValue(Collections.EMPTY_LIST));
this.userClass.setName(USER_XCLASS);
this.userClass.addTextField("first_name", "First Name", 30);
this.userClass.addTextField("last_name", "Last Name", 30);
this.userClass.addTextField("email", "e-Mail", 30);
this.userClass.addPasswordField("password", "Password", 10);
this.userClass.addTextField("customproperty", "Custom property", 10);
mockXWiki.stubs().method("getUserClass").will(returnValue(this.userClass));
this.groupClass.setName(GROUP_XCLASS);
this.groupClass.addTextField("member", "Member", 30);
mockXWiki.stubs().method("getGroupClass").will(returnValue(this.groupClass));
mockXWiki.stubs().method("createUser").will(new CustomStub("Implements XWiki.createUser")
{
public Object invoke(Invocation invocation) throws Throwable
{
XWikiDocument document = new XWikiDocument();
document.setFullName("XWiki." + invocation.parameterValues.get(0));
BaseObject newobject = new BaseObject();
newobject.setClassName(userClass.getName());
userClass.fromMap((Map) invocation.parameterValues.get(1), newobject);
document.addObject(userClass.getName(), newobject);
saveDocument(document);
return 1;
}
});
getContext().setWiki((XWiki) mockXWiki.proxy());
this.properties.setProperty("xwiki.authentication.ldap", "1");
this.properties.setProperty("xwiki.authentication.ldap.server", LDAPTestSetup.LDAP_SERVER);
this.properties.setProperty("xwiki.authentication.ldap.port", "" + LDAPTestSetup.getLDAPPort());
this.properties.setProperty("xwiki.authentication.ldap.base_DN", LDAPTestSetup.LDAP_BASEDN);