package org.exist.security;
import org.easymock.EasyMock;
import org.exist.security.internal.AccountImpl;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import org.exist.Database;
import org.exist.config.Configuration;
import org.exist.security.internal.SecurityManagerImpl;
import org.junit.Ignore;
import org.junit.Test;
/**
*
* @author aretter
*/
public class AccountTest {
@Ignore
@Test
public void testGroupFallback() throws NoSuchMethodException, PermissionDeniedException {
// final String mockRealmId = "mock";
final String testAccountName = "testUser";
final String testGroupName = "testGroup";
Database mockDatabase = EasyMock.createMock(Database.class);
SecurityManagerImpl mockSecurityManager = EasyMock.createMockBuilder(SecurityManagerImpl.class)
.withConstructor(Database.class)
.withArgs(mockDatabase)
.createMock();
Configuration mockConfiguration = EasyMock.createMock(Configuration.class);
AbstractRealm mockRealm = EasyMock.createMockBuilder(AbstractRealm.class)
.withConstructor(SecurityManager.class, Configuration.class)
.withArgs(mockSecurityManager, mockConfiguration)
.createMock();
AccountImpl mockAccountImpl = EasyMock.createMockBuilder(AccountImpl.class)
.withConstructor(AbstractRealm.class, String.class)
.withArgs(mockRealm, testAccountName)
.addMockedMethods(
AccountImpl.class.getMethod("getRealm"),
AccountImpl.class.getMethod("addGroup", Group.class)
).createMock();
expect(mockAccountImpl.getRealm()).andReturn(mockRealm);
expect(mockRealm.getGroup(testGroupName)).andReturn(null);
//expect(mockAccountImpl.getRealm()).andReturn(mockRealm);
//expect(mockRealm.getSecurityManager()).andReturn(mockSecurityManager);
replay();
mockAccountImpl.addGroup(testGroupName);
verify();
}
}