/**
* Copyright (c) 2008, MTV Networks
*/
package com.mtvi.plateng.hudson.ldap;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import junit.framework.TestCase;
import com.mockobjects.naming.directory.MockAttribute;
import com.mockobjects.naming.directory.MockAttributes;
import com.mockobjects.naming.directory.MockDirContext;
import com.mockobjects.naming.directory.MockNamingEnumeration;
import com.mtvi.plateng.testing.jndi.MockDirContextFactory;
public abstract class BaseLdapSearchTestCase extends TestCase {
private MockDirContext mockContext;
private MockNamingEnumeration mockResults;
private MockAttributes attrs;
private MockAttribute attr;
protected abstract String getLDAPURL();
private class TestSearchControls extends SearchControls {
@Override
public boolean equals(Object obj) {
SearchControls other = (SearchControls) obj;
return getSearchScope() == other.getSearchScope();
}
}
@Override
protected void setUp() throws Exception {
super.setUp();
mockContext = MockDirContextFactory.getContext(getLDAPURL());
System.out.println("in setup: " + mockContext);
SearchControls ctrs = new TestSearchControls();
ctrs.setSearchScope(SearchControls.SUBTREE_SCOPE);
attrs = new MockAttributes();
attrs.setExpectedName("email");
attr = new MockAttribute();
attr.setupGet("mail@test.com");
attrs.setupAddGet(attr);
SearchResult result = new SearchResult("uid=testuser,ou=Users", null, attrs);
mockResults = new MockNamingEnumeration();
mockResults.setupAddSearchResult(result);
mockContext.setExpectedSearch("dc=test,dc=com", "uid=testuser", ctrs);
mockContext.setupSearchResult(mockResults);
}
@Override
protected void tearDown() throws Exception {
mockContext.verify();
attrs.verify();
attr.verify();
mockResults.verify();
MockDirContextFactory.removeContext(getLDAPURL());
super.tearDown();
}
}