4 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.taxon
.tmp
;
6 import java
.io
.FileNotFoundException
;
10 import org
.junit
.Assert
;
11 import org
.junit
.Before
;
12 import org
.junit
.Test
;
13 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
15 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
19 import eu
.etaxonomy
.cdm
.persistence
.dao
.taxon
.IClassificationDao
;
20 import eu
.etaxonomy
.cdm
.persistence
.dao
.taxon
.ITaxonNodeDao
;
21 import eu
.etaxonomy
.cdm
.persistence
.dao
.taxon
.tmp
.TaxonNodeFilter
;
22 import eu
.etaxonomy
.cdm
.persistence
.dao
.taxon
.tmp
.TaxonNodeFilterDaoHibernateImpl
;
23 import eu
.etaxonomy
.cdm
.test
.integration
.CdmTransactionalIntegrationTest
;
30 public class TaxonNodeFilterDaoHibernateImplTest
extends CdmTransactionalIntegrationTest
{
33 private ITaxonNodeDao taxonNodeDao
;
36 private IClassificationDao classificationDao
;
39 private TaxonNodeFilterDaoHibernateImpl filterDao
;
45 private Classification classification1
;
46 private TaxonNode node1
;
47 private TaxonNode node2
;
48 private TaxonNode node3
;
49 private TaxonNode node4
;
50 private TaxonNode node5
;
53 * @throws java.lang.Exception
56 public void setUp() throws Exception
{
57 classification1
= Classification
.NewInstance("TestClassification");
58 Reference citation
= null;
59 String microCitation
= null;
60 Taxon taxon1
= Taxon
.NewInstance(null, null);
61 Taxon taxon2
= Taxon
.NewInstance(null, null);
62 Taxon taxon3
= Taxon
.NewInstance(null, null);
63 Taxon taxon4
= Taxon
.NewInstance(null, null);
64 Taxon taxon5
= Taxon
.NewInstance(null, null);
65 node1
= classification1
.addChildTaxon(taxon1
, citation
, microCitation
);
66 node1
= taxonNodeDao
.save(node1
);
68 node2
= classification1
.addChildTaxon(taxon2
, citation
, microCitation
);
69 node2
= taxonNodeDao
.save(node2
);
70 node3
= node1
.addChildTaxon(taxon3
, citation
, microCitation
);
71 taxonNodeDao
.save(node3
);
72 node4
= node3
.addChildTaxon(taxon4
, citation
, microCitation
);
73 taxonNodeDao
.save(node4
);
74 node5
= node3
.addChildTaxon(taxon5
, citation
, microCitation
);
75 node5
= taxonNodeDao
.save(node5
);
76 //MergeResult result = taxonNodeDao.merge(node5, true);
77 //node5 = (TaxonNode) result.getMergedEntity();
79 //taxonNodeDao.save(node5);
83 classificationDao
.save(classification1
);
89 * Test method for {@link eu.etaxonomy.cdm.persistence.dao.taxon.tmp.TaxonNodeFilterDaoHibernateImpl#listUuids(eu.etaxonomy.cdm.persistence.dao.taxon.tmp.TaxonNodeFilter)}.
92 public void testListUuids() {
93 Classification classification
= classificationDao
.findByUuid(classification1
.getUuid());
94 TaxonNodeFilter filter
= new TaxonNodeFilter(node1
);
95 List
<UUID
> listUuid
= filterDao
.listUuids(filter
);
96 List
<TaxonNode
> children
= taxonNodeDao
.listChildrenOf(node1
, null, null, null, true);
97 Assert
.assertEquals("All 4 children should be returned", 4, listUuid
.size());
98 Assert
.assertTrue(listUuid
.contains(node4
.getUuid()));
99 Assert
.assertFalse(listUuid
.contains(node2
.getUuid()));
100 Assert
.assertFalse(listUuid
.contains(classification
.getRootNode().getUuid()));
103 filter
= new TaxonNodeFilter(classification
.getRootNode());
104 listUuid
= filterDao
.listUuids(filter
);
105 //FIXME still unclear if (empty) root node should be part of the result
106 Assert
.assertEquals("All 6 children should be returned", 6, listUuid
.size());
108 filter
= new TaxonNodeFilter(node3
);
109 listUuid
= filterDao
.listUuids(filter
);
110 Assert
.assertEquals("All 3 children should be returned", 3, listUuid
.size());
113 listUuid
= filterDao
.listUuids(filter
);
114 Assert
.assertEquals("All 3 children and node 2 should be returned", 4, listUuid
.size());
115 Assert
.assertTrue(listUuid
.contains(node2
.getUuid()));
117 filter
= new TaxonNodeFilter(node1
).not(node4
);
118 listUuid
= filterDao
.listUuids(filter
);
119 Assert
.assertEquals("Node and 2 children but not node4 should be returned", 3, listUuid
.size());
120 Assert
.assertFalse(listUuid
.contains(node4
.getUuid()));
129 * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
132 public void createTestDataSet() throws FileNotFoundException
{
133 // TODO Auto-generated method stub