diff --git a/spring-ldap-person/ivy.xml b/spring-ldap-person/ivy.xml index 02df7261..0f3f66aa 100644 --- a/spring-ldap-person/ivy.xml +++ b/spring-ldap-person/ivy.xml @@ -1,8 +1,10 @@ - - + @@ -14,81 +16,106 @@ - + - - - - - + + + + + - - + + - - - + + + - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - + + + conf="global->default" /> - + conf="global->default" /> + - + - - - - - + + + + + diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyGroupDao.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyGroupDao.java index b226596f..ee150627 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyGroupDao.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyGroupDao.java @@ -79,4 +79,8 @@ public class DummyGroupDao implements GroupDao { Group actualGroup = findByPrimaryKey(group.getName()); actualGroup.setMembers(group.getMembers()); } + + public void updateMemberDn(String originalDn, String newDn) { + throw new UnsupportedOperationException("Not implemented"); + } } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyPersonDao.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyPersonDao.java index f1909e4e..bb0bfbc7 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyPersonDao.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/DummyPersonDao.java @@ -76,19 +76,29 @@ public class DummyPersonDao implements PersonDao { return new LinkedList(PERSONS.entrySet()); } - public Person findByPrimaryKey(String country, String company, + public Person findByPrimaryKey(String dn) { + log.info("findByPrimaryKey"); + if (PERSONS.get(dn) != null) { + return (Person) PERSONS.get(dn); + } else { + throw new NameNotFoundException("Could not find person with dn '" + + dn + "'"); + } + } + + public Person findByPrimaryKeyData(String country, String company, String fullname) { log.info("findByPrimaryKey"); if (PERSONS.get(fullname) != null) { return (Person) PERSONS.get(fullname); } else { - throw new NameNotFoundException( - "Could not find person with name '" + fullname + "'"); + throw new NameNotFoundException("Could not find person with name '" + + fullname + "'"); } } public void update(Person person) { - Person actualPerson = findByPrimaryKey(null, null, person.getFullName()); + Person actualPerson = findByPrimaryKey(person.getFullName()); actualPerson.setCompany(person.getCompany()); actualPerson.setCountry(person.getCountry()); actualPerson.setDescription(person.getDescription()); diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDao.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDao.java index e8cbd7ce..5b204512 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDao.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDao.java @@ -37,4 +37,14 @@ public interface GroupDao { public List findAll(); public List find(SearchCriteria criteria); + + /** + * Update all groups referring to the original DN with the new DN value. + * + * @param originalDn + * the original DN. + * @param newDn + * the new DN. + */ + public void updateMemberDn(String originalDn, String newDn); } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDaoImpl.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDaoImpl.java index 9ba65469..f6f5e56e 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDaoImpl.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/GroupDaoImpl.java @@ -15,8 +15,13 @@ */ package org.springframework.ldap.samples.person.dao; +import java.util.Iterator; import java.util.List; +import javax.naming.directory.BasicAttribute; +import javax.naming.directory.DirContext; +import javax.naming.directory.ModificationItem; + import org.springframework.ldap.core.ContextMapper; import org.springframework.ldap.core.DirContextAdapter; import org.springframework.ldap.core.DirContextOperations; @@ -127,4 +132,34 @@ public class GroupDaoImpl implements GroupDao { public void setLdapOperations(LdapOperations ldapOperations) { this.ldapOperations = ldapOperations; } + + public void updateMemberDn(String originalDn, String newDn) { + BasicAttribute removeAttribute = new BasicAttribute("uniqueMember", + originalDn); + BasicAttribute addAttribute = new BasicAttribute("uniqueMember", + newDn); + + ModificationItem[] modificationItems = new ModificationItem[2]; + modificationItems[0] = new ModificationItem( + DirContext.REMOVE_ATTRIBUTE, removeAttribute); + modificationItems[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, + addAttribute); + + AndFilter filter = new AndFilter(); + filter.and(new EqualsFilter("objectclass", "groupOfUniqueNames")); + filter.and(new EqualsFilter("uniqueMember", originalDn)); + + List list = ldapOperations.search(DistinguishedName.EMPTY_PATH, filter + .encode(), new ContextMapper() { + public Object mapFromContext(Object ctx) { + DirContextAdapter adapter = (DirContextAdapter) ctx; + return adapter.getNameInNamespace(); + } + }); + + for (Iterator iter = list.iterator(); iter.hasNext();) { + String dn = (String) iter.next(); + ldapOperations.modifyAttributes(dn, modificationItems); + } + } } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonContextMapper.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonContextMapper.java index f4555d6c..6ec4d057 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonContextMapper.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonContextMapper.java @@ -15,13 +15,10 @@ */ package org.springframework.ldap.samples.person.dao; -import javax.naming.NamingException; - import org.springframework.ldap.core.ContextMapper; import org.springframework.ldap.core.DirContextOperations; import org.springframework.ldap.core.DistinguishedName; import org.springframework.ldap.samples.person.domain.Person; -import org.springframework.ldap.support.LdapUtils; /** * Maps from DirContextOperations (DirContextAdapters, really) to Person @@ -39,13 +36,11 @@ public class PersonContextMapper implements ContextMapper { DirContextOperations dirContext = (DirContextOperations) ctx; DistinguishedName dn = new DistinguishedName(dirContext.getDn()); String fullDn; - try { - fullDn = dirContext.getNameInNamespace(); - } catch (NamingException e) { - throw LdapUtils.convertLdapException(e); - } + fullDn = dirContext.getNameInNamespace(); + Person person = new Person(); person.setDn(fullDn); + person.setPrimaryKey(dirContext.getDn().toString()); person.setCountry(dn.getLdapRdn(0).getComponent().getValue()); person.setCompany(dn.getLdapRdn(1).getComponent().getValue()); person.setFullName(dirContext.getStringAttribute("cn")); diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDao.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDao.java index 09dc8bb5..cdb1612b 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDao.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDao.java @@ -20,7 +20,6 @@ import java.util.List; import org.springframework.ldap.samples.person.domain.Person; import org.springframework.ldap.samples.person.domain.SearchCriteria; - /** * Data Access Object interface for the Person entity. * @@ -33,10 +32,13 @@ public interface PersonDao { public void update(Person person); public void delete(Person person); - - public Person findByPrimaryKey(String country, String company, String fullname); - + + public Person findByPrimaryKey(String dn); + + public Person findByPrimaryKeyData(String country, String company, + String fullname); + public List findAll(); - + public List find(SearchCriteria criteria); } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDaoImpl.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDaoImpl.java index 2e709a64..660d945f 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDaoImpl.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/PersonDaoImpl.java @@ -17,6 +17,8 @@ package org.springframework.ldap.samples.person.dao; import java.util.List; +import javax.naming.Name; + import org.springframework.ldap.core.ContextMapper; import org.springframework.ldap.core.DirContextAdapter; import org.springframework.ldap.core.DirContextOperations; @@ -79,14 +81,27 @@ public class PersonDaoImpl implements PersonDao { } public void update(Person person) { + DistinguishedName originalDn = new DistinguishedName(person + .getPrimaryKey()); + DistinguishedName newDn = buildDn(person); + + if (!originalDn.equals(newDn)) { + ldapOperations.rename(originalDn, newDn); + } + DirContextOperations ctx = (DirContextOperations) ldapOperations - .lookup(buildDn(person)); - ldapOperations.modifyAttributes(buildDn(person), setAttributes(ctx, - person).getModificationItems()); + .lookup(newDn); + ldapOperations.modifyAttributes(newDn, setAttributes(ctx, person) + .getModificationItems()); + + if (!originalDn.equals(newDn)) { + person.setDn(ctx.getNameInNamespace()); + person.setPrimaryKey(ctx.getDn().toString()); + } } public void delete(Person person) { - ldapOperations.unbind(buildDn(person)); + ldapOperations.unbind(person.getPrimaryKey()); } public List findAll() { @@ -95,9 +110,8 @@ public class PersonDaoImpl implements PersonDao { .encode(), getContextMapper()); } - public Person findByPrimaryKey(String country, String company, + public Person findByPrimaryKeyData(String country, String company, String fullname) { - DistinguishedName dn = new DistinguishedName(); dn.add("c", country); dn.add("ou", company); @@ -106,6 +120,10 @@ public class PersonDaoImpl implements PersonDao { return (Person) ldapOperations.lookup(dn, getContextMapper()); } + public Person findByPrimaryKey(String dn) { + return (Person) ldapOperations.lookup(dn, getContextMapper()); + } + public List find(SearchCriteria criteria) { AndFilter andFilter = new AndFilter(); andFilter.and(new EqualsFilter("objectclass", "person")); @@ -117,4 +135,5 @@ public class PersonDaoImpl implements PersonDao { public void setLdapOperations(LdapOperations ldapOperations) { this.ldapOperations = ldapOperations; } + } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/TraditionalPersonDaoImpl.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/TraditionalPersonDaoImpl.java index 7bf024fc..61361acc 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/TraditionalPersonDaoImpl.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/dao/TraditionalPersonDaoImpl.java @@ -127,10 +127,28 @@ public class TraditionalPersonDaoImpl implements PersonDao { * @see org.springframework.ldap.samples.person.dao.PersonDao#findByPrimaryKey(java.lang.String, * java.lang.String, java.lang.String) */ - public Person findByPrimaryKey(String country, String company, - String fullname) { + public Person findByPrimaryKey(String dn) { DirContext ctx = createContext(); + try { + Attributes attributes = ctx.getAttributes(dn); + return mapToPerson(dn, attributes); + } catch (NamingException e) { + throw new RuntimeException(e); + } finally { + if (ctx != null) { + try { + ctx.close(); + } catch (Exception e) { + // Never mind this. + } + } + } + } + + public Person findByPrimaryKeyData(String country, String company, + String fullname) { + DirContext ctx = createContext(); String dn = buildDn(country, company, fullname); try { Attributes attributes = ctx.getAttributes(dn); @@ -225,4 +243,5 @@ public class TraditionalPersonDaoImpl implements PersonDao { public void setBase(String base) { this.base = base; } + } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/domain/Person.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/domain/Person.java index 3661498d..c1d47c40 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/domain/Person.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/domain/Person.java @@ -31,11 +31,17 @@ public class Person implements Serializable { private static final long serialVersionUID = -8953862790009843528L; /** - * Needed when adding persons to groups, since groups require - * full distinguished names of their members. + * Needed when adding persons to groups, since groups require full + * distinguished names of their members. */ private String dn; + /** + * The primary key - that is the distinguished name of the person in the + * current namespace. + */ + private String primaryKey; + private String fullName; private String lastName; @@ -114,8 +120,16 @@ public class Person implements Serializable { public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } - + public String toString() { return new ToStringCreator(this).toString(); } + + public String getPrimaryKey() { + return primaryKey; + } + + public void setPrimaryKey(String primaryKey) { + this.primaryKey = primaryKey; + } } diff --git a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/service/PersonServiceImpl.java b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/service/PersonServiceImpl.java index 72cfeeb6..879f0aa3 100644 --- a/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/service/PersonServiceImpl.java +++ b/spring-ldap-person/src/main/java/org/springframework/ldap/samples/person/service/PersonServiceImpl.java @@ -17,6 +17,8 @@ package org.springframework.ldap.samples.person.service; import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.springframework.ldap.samples.person.dao.GroupDao; import org.springframework.ldap.samples.person.dao.PersonDao; import org.springframework.ldap.samples.person.domain.Person; import org.springframework.ldap.samples.person.domain.SearchCriteria; @@ -31,6 +33,8 @@ public class PersonServiceImpl implements PersonService { private PersonDao personDao; + private GroupDao groupDao; + /* * @see org.springframework.ldap.samples.person.service.PersonService#create(java.lang.String, * java.lang.String, java.lang.String, java.lang.String, @@ -53,7 +57,18 @@ public class PersonServiceImpl implements PersonService { * @see org.springframework.ldap.samples.person.service.PersonService#update(org.springframework.ldap.samples.person.domain.Person) */ public void update(Person person) { + String originalDn = person.getDn(); personDao.update(person); + String newDn = person.getDn(); + + // If the DN has changed (i.e. if the user has been moved in the tree, + // also modify all referring groups. + // Unfortunately this doesn't work with the current version of ApacheDS, + // as the format of the DN produced by DistinguishedName is different + // from the one present in the DB (and recognized by acegi). + if (!StringUtils.equals(originalDn, newDn)) { + groupDao.updateMemberDn(originalDn, newDn); + } } public void delete(Person person) { @@ -65,7 +80,7 @@ public class PersonServiceImpl implements PersonService { * java.lang.String, java.lang.String) */ public Person findByPrimaryKey(String country, String company, String name) { - return personDao.findByPrimaryKey(country, company, name); + return personDao.findByPrimaryKeyData(country, company, name); } /* @@ -85,4 +100,8 @@ public class PersonServiceImpl implements PersonService { public void setPersonDao(PersonDao personDao) { this.personDao = personDao; } + + public void setGroupDao(GroupDao groupDao) { + this.groupDao = groupDao; + } } diff --git a/spring-ldap-person/src/main/webapp/WEB-INF/applicationContext.xml b/spring-ldap-person/src/main/webapp/WEB-INF/applicationContext.xml index 86961b91..92d006d6 100644 --- a/spring-ldap-person/src/main/webapp/WEB-INF/applicationContext.xml +++ b/spring-ldap-person/src/main/webapp/WEB-INF/applicationContext.xml @@ -1,9 +1,9 @@ - - + @@ -12,32 +12,42 @@ + + --> - + - - - - - - - + + + + + + + + + + + + @@ -54,9 +64,11 @@ - - + + --> @@ -67,22 +79,34 @@ - + + + + + + + PROPAGATION_REQUIRES_NEW + + + + diff --git a/spring-ldap-person/src/main/webapp/WEB-INF/flows/detail-flow.xml b/spring-ldap-person/src/main/webapp/WEB-INF/flows/detail-flow.xml index 02ccab46..1d8c5c1c 100644 --- a/spring-ldap-person/src/main/webapp/WEB-INF/flows/detail-flow.xml +++ b/spring-ldap-person/src/main/webapp/WEB-INF/flows/detail-flow.xml @@ -10,37 +10,29 @@ - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/GroupDaoImplTest.java b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/GroupDaoImplTest.java index 393a25f5..75c3141d 100644 --- a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/GroupDaoImplTest.java +++ b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/GroupDaoImplTest.java @@ -168,8 +168,9 @@ public class GroupDaoImplTest extends TestCase { public void testFindAll() { List expectedList = Collections.singletonList(null); ldapOperationsControl.expectAndReturn(ldapOperationsMock.search( - DistinguishedName.EMPTY_PATH, "(objectclass=groupOfUniqueNames)", - contextMapperMock), expectedList); + DistinguishedName.EMPTY_PATH, + "(objectclass=groupOfUniqueNames)", contextMapperMock), + expectedList); replay(); @@ -181,8 +182,7 @@ public class GroupDaoImplTest extends TestCase { } public void testFindByPrimaryKey() { - DistinguishedName dn = new DistinguishedName( - "cn=Some Group, ou=groups"); + DistinguishedName dn = new DistinguishedName("cn=Some Group, ou=groups"); ldapOperationsControl.expectAndReturn(ldapOperationsMock.lookup(dn, contextMapperMock), group); @@ -200,8 +200,8 @@ public class GroupDaoImplTest extends TestCase { List expectedList = Collections.singletonList(null); ldapOperationsControl.expectAndReturn(ldapOperationsMock.search( DistinguishedName.EMPTY_PATH, - "(&(objectclass=groupOfUniqueNames)(cn=*some*))", contextMapperMock), - expectedList); + "(&(objectclass=groupOfUniqueNames)(cn=*some*))", + contextMapperMock), expectedList); replay(); diff --git a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/PersonDaoImplTest.java b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/PersonDaoImplTest.java index 0b327221..b7b97aee 100644 --- a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/PersonDaoImplTest.java +++ b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/dao/PersonDaoImplTest.java @@ -18,6 +18,7 @@ package org.springframework.ldap.samples.person.dao; import java.util.Collections; import java.util.List; +import javax.naming.NamingException; import javax.naming.directory.ModificationItem; import junit.framework.TestCase; @@ -38,6 +39,16 @@ import org.springframework.ldap.samples.person.domain.SearchCriteria; */ public class PersonDaoImplTest extends TestCase { + private static final String DEFAULT_DN = "cn=some person, ou=Some Company, c=SE"; + + private static final DistinguishedName DEFAULT_DNAME = new DistinguishedName( + DEFAULT_DN); + + private static final String MODIFIED_DN = "cn=some person, ou=Some Other Company, c=SE"; + + private static final DistinguishedName MODIFIED_DNAME = new DistinguishedName( + MODIFIED_DN); + private MockControl ldapOperationsControl; private LdapOperations ldapOperationsMock; @@ -68,6 +79,10 @@ public class PersonDaoImplTest extends TestCase { contextMapperMock = (ContextMapper) contextMapperControl.getMock(); person = new Person(); + person.setFullName("some person"); + person.setCompany("Some company"); + person.setCountry("SE"); + person.setPrimaryKey(DEFAULT_DN); tested = new PersonDaoImpl() { DirContextOperations setAttributes(DirContextOperations adapter, @@ -76,11 +91,6 @@ public class PersonDaoImplTest extends TestCase { return dirContextOperationsMock; } - DistinguishedName buildDn(Person p) { - assertSame(person, p); - return DistinguishedName.EMPTY_PATH; - } - ContextMapper getContextMapper() { return contextMapperMock; } @@ -129,8 +139,7 @@ public class PersonDaoImplTest extends TestCase { } public void testCreate() { - ldapOperationsMock.bind(DistinguishedName.EMPTY_PATH, - dirContextOperationsMock, null); + ldapOperationsMock.bind(DEFAULT_DNAME, dirContextOperationsMock, null); replay(); @@ -140,26 +149,49 @@ public class PersonDaoImplTest extends TestCase { } public void testUpdate() { - ldapOperationsControl - .expectAndReturn(ldapOperationsMock - .lookup(DistinguishedName.EMPTY_PATH), - dirContextOperationsMock); + ldapOperationsControl.expectAndReturn(ldapOperationsMock + .lookup(DEFAULT_DNAME), dirContextOperationsMock); ModificationItem[] modificationItems = new ModificationItem[0]; dirContextOperationsControl.expectAndReturn(dirContextOperationsMock .getModificationItems(), modificationItems); - ldapOperationsMock.modifyAttributes(DistinguishedName.EMPTY_PATH, - modificationItems); + ldapOperationsMock.modifyAttributes(DEFAULT_DNAME, modificationItems); replay(); tested.update(person); verify(); + } + public void testUpdateWithChangedCompany() throws NamingException { + person.setCompany("Some Other Company"); + + ldapOperationsMock.rename(DEFAULT_DNAME, MODIFIED_DNAME); + + ldapOperationsControl.expectAndReturn(ldapOperationsMock + .lookup(MODIFIED_DNAME), dirContextOperationsMock); + + ModificationItem[] modificationItems = new ModificationItem[0]; + dirContextOperationsControl.expectAndReturn(dirContextOperationsMock + .getModificationItems(), modificationItems); + ldapOperationsMock.modifyAttributes(MODIFIED_DNAME, modificationItems); + + dirContextOperationsControl.expectAndReturn(dirContextOperationsMock + .getNameInNamespace(), "cn=new dn, dc=jayway, dc=se"); + dirContextOperationsControl.expectAndReturn(dirContextOperationsMock + .getDn(), new DistinguishedName("cn=new dn")); + + replay(); + + tested.update(person); + + verify(); + assertEquals("cn=new dn", person.getPrimaryKey()); + assertEquals("cn=new dn, dc=jayway, dc=se", person.getDn()); } public void testDelete() { - ldapOperationsMock.unbind(DistinguishedName.EMPTY_PATH); + ldapOperationsMock.unbind(DEFAULT_DN); replay(); @@ -184,16 +216,14 @@ public class PersonDaoImplTest extends TestCase { } public void testFindByPrimaryKey() { - DistinguishedName dn = new DistinguishedName( - "cn=Some Person, ou=Some company, c=Sweden"); + String dn = "cn=Some Person, ou=Some company, c=Sweden"; ldapOperationsControl.expectAndReturn(ldapOperationsMock.lookup(dn, contextMapperMock), person); replay(); - Person result = tested.findByPrimaryKey("Sweden", "Some company", - "Some Person"); + Person result = tested.findByPrimaryKey(dn); verify(); diff --git a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/service/PersonServiceImplTest.java b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/service/PersonServiceImplTest.java index e6680a6d..7e76bd65 100644 --- a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/service/PersonServiceImplTest.java +++ b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/service/PersonServiceImplTest.java @@ -21,10 +21,10 @@ import java.util.List; import junit.framework.TestCase; import org.easymock.MockControl; +import org.springframework.ldap.samples.person.dao.GroupDao; import org.springframework.ldap.samples.person.dao.PersonDao; import org.springframework.ldap.samples.person.domain.Person; import org.springframework.ldap.samples.person.domain.SearchCriteria; -import org.springframework.ldap.samples.person.service.PersonServiceImpl; /** * Unit tests for the PersonServiceImpl class. @@ -116,7 +116,7 @@ public class PersonServiceImplTest extends TestCase { public void testFindByPrimaryKey() { Person person = new Person(); - personDaoControl.expectAndReturn(personDaoMock.findByPrimaryKey( + personDaoControl.expectAndReturn(personDaoMock.findByPrimaryKeyData( "Sweden", "Some company", "Some Person"), person); replay(); diff --git a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/web/DetailFlowExecutionTest.java b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/web/DetailFlowExecutionTest.java index 09cb3d01..fc1ad40b 100644 --- a/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/web/DetailFlowExecutionTest.java +++ b/spring-ldap-person/src/test/java/org/springframework/ldap/samples/person/web/DetailFlowExecutionTest.java @@ -83,7 +83,7 @@ public class DetailFlowExecutionTest extends AbstractXmlFlowExecutionTests { } public void testEdit() { - expectFindByPrimaryKey(2); + expectFindByPrimaryKey(); replay(); startFlow(attributeMap); @@ -96,7 +96,7 @@ public class DetailFlowExecutionTest extends AbstractXmlFlowExecutionTests { } public void testCancel() { - expectFindByPrimaryKey(3); + expectFindByPrimaryKey(); replay(); startFlow(attributeMap); @@ -110,7 +110,7 @@ public class DetailFlowExecutionTest extends AbstractXmlFlowExecutionTests { } public void testSubmit() { - expectFindByPrimaryKey(3); + expectFindByPrimaryKey(); expectUpdate(); replay();