Revision 4e201def
Added by Andreas Müller about 8 years ago
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmGenericDaoImplTest.java | ||
---|---|---|
746 | 746 |
} |
747 | 747 |
} |
748 | 748 |
|
749 |
/** |
|
750 |
* Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#merge(CdmBase, CdmBase)}. |
|
751 |
* |
|
752 |
* Test for http://dev.e-taxonomy.eu/trac/ticket/5651 |
|
753 |
* |
|
754 |
* @throws MergeException |
|
755 |
*/ |
|
756 |
@Test |
|
757 |
public void testMergePersons() throws MergeException { |
|
758 |
Team team1 = Team.NewInstance(); |
|
759 |
Team team2 = Team.NewInstance(); |
|
760 |
Team team3 = Team.NewInstance(); |
|
761 |
team1.setTitleCache("team1", true); |
|
762 |
team2.setTitleCache("team2", true); |
|
763 |
team3.setTitleCache("team3", true); |
|
764 |
|
|
765 |
Person person1a = Person.NewTitledInstance("person1a"); |
|
766 |
Person person1b = Person.NewTitledInstance("person1b"); |
|
767 |
Person person2 = Person.NewTitledInstance("person2"); |
|
768 |
Person person3 = Person.NewTitledInstance("person3"); |
|
769 |
|
|
770 |
team1.addTeamMember(person1a); |
|
771 |
team1.addTeamMember(person2); |
|
772 |
|
|
773 |
|
|
774 |
team2.addTeamMember(person2); |
|
775 |
team2.addTeamMember(person1a); |
|
776 |
team2.addTeamMember(person3); |
|
777 |
|
|
778 |
team3.addTeamMember(person3); |
|
779 |
|
|
780 |
agentDao.save(team1); |
|
781 |
agentDao.save(team2); |
|
782 |
agentDao.save(team3); |
|
783 |
agentDao.save(person1b); |
|
784 |
commitAndStartNewTransaction(null); |
|
785 |
|
|
786 |
IMergeStrategy personMergeStrategy = DefaultMergeStrategy.NewInstance(Person.class); |
|
787 |
cdmGenericDao.merge(person1b, person1a, personMergeStrategy); |
|
788 |
|
|
789 |
team1 = (Team)agentDao.load(team1.getUuid()); |
|
790 |
team2 = (Team)agentDao.load(team2.getUuid()); |
|
791 |
|
|
792 |
//order should not change and 1a should be replaced by 1b |
|
793 |
Assert.assertEquals("person1b", team1.getTeamMembers().get(0).getTitleCache()); |
|
794 |
Assert.assertEquals("person2", team1.getTeamMembers().get(1).getTitleCache()); |
|
795 |
|
|
796 |
Assert.assertEquals("person2", team2.getTeamMembers().get(0).getTitleCache()); |
|
797 |
Assert.assertEquals("person1b", team2.getTeamMembers().get(1).getTitleCache()); |
|
798 |
Assert.assertEquals("person3", team2.getTeamMembers().get(2).getTitleCache()); |
|
799 |
|
|
800 |
} |
|
801 |
|
|
802 |
|
|
749 | 803 |
|
750 | 804 |
/** |
751 | 805 |
* Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#merge(CdmBase, CdmBase)}. |
Also available in: Unified diff
Fix deduplication problem with list order #5652