Revision 5e97e1b2
Added by Andreas Müller over 11 years ago
.gitattributes | ||
---|---|---|
1879 | 1879 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/MediaDaoImplTest.xml -text |
1880 | 1880 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/OregonScientificDS6639-DSC_0307-small.jpg -text |
1881 | 1881 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/OregonScientificDS6639-DSC_0307-small.tif -text |
1882 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest -text |
|
1882 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest.xml -text
|
|
1883 | 1883 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonServiceImplTest.xml -text |
1884 | 1884 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonServiceSearchTest.xml -text |
1885 | 1885 |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/UserServiceImplTest.xml -text |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java | ||
---|---|---|
46 | 46 |
@Service |
47 | 47 |
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true) |
48 | 48 |
public class TaxonNodeServiceImpl extends AnnotatableServiceBase<TaxonNode, ITaxonNodeDao> implements ITaxonNodeService{ |
49 |
private static final Logger logger = Logger |
|
50 |
.getLogger(TaxonNodeServiceImpl.class); |
|
49 |
private static final Logger logger = Logger.getLogger(TaxonNodeServiceImpl.class); |
|
51 | 50 |
|
52 | 51 |
@Autowired |
53 | 52 |
private BeanInitializer defaultBeanInitializer; |
... | ... | |
146 | 145 |
} |
147 | 146 |
|
148 | 147 |
//Move descriptions to new taxon |
149 |
for(TaxonDescription description : oldTaxon.getDescriptions()){ |
|
150 |
description.setTitleCache("Description copied from former accepted taxon: " + oldTaxon.getTitleCache() + "(Old title: " + description.getTitleCache() + ")"); |
|
148 |
List<TaxonDescription> descriptions = new ArrayList<TaxonDescription>( oldTaxon.getDescriptions()); //to avoid concurrent modification errors (newAcceptedTaxon.addDescription() modifies also oldtaxon.descritpions()) |
|
149 |
for(TaxonDescription description : descriptions){ |
|
150 |
String message = "Description copied from former accepted taxon: %s (Old title: %s)"; |
|
151 |
message = String.format(message, oldTaxon.getTitleCache(), description.getTitleCache()); |
|
152 |
description.setTitleCache(message, true); |
|
151 | 153 |
newAcceptedTaxon.addDescription(description); |
152 | 154 |
} |
153 | 155 |
|
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest.java | ||
---|---|---|
16 | 16 |
import org.junit.Before; |
17 | 17 |
import org.junit.Ignore; |
18 | 18 |
import org.junit.Test; |
19 |
import org.unitils.dbunit.annotation.DataSet; |
|
19 | 20 |
import org.unitils.spring.annotation.SpringBeanByType; |
20 | 21 |
|
21 | 22 |
import eu.etaxonomy.cdm.model.reference.Reference; |
... | ... | |
31 | 32 |
* @created Dec 16, 2010 |
32 | 33 |
* @version 1.0 |
33 | 34 |
*/ |
35 |
|
|
34 | 36 |
public class TaxonNodeServiceImplTest extends CdmIntegrationTest{ |
35 | 37 |
|
36 | 38 |
@SpringBeanByType |
... | ... | |
53 | 55 |
private Taxon t2; |
54 | 56 |
private Synonym s1; |
55 | 57 |
private SynonymRelationshipType synonymRelationshipType; |
56 |
private Reference reference; |
|
58 |
private Reference<?> reference;
|
|
57 | 59 |
private String referenceDetail; |
58 | 60 |
private Classification classification; |
59 | 61 |
private TaxonNode node2; |
... | ... | |
64 | 66 |
*/ |
65 | 67 |
@Before |
66 | 68 |
public void setUp() throws Exception { |
67 |
|
|
68 |
classification = classificationService.load(classificationUuid); |
|
69 |
|
|
70 |
node1 = taxonNodeService.load(node1Uuid); |
|
71 |
|
|
72 |
node2 = taxonNodeService.load(node2Uuid); |
|
73 |
|
|
74 |
reference = referenceService.load(referenceUuid); |
|
75 |
|
|
76 |
// referencing |
|
77 |
synonymRelationshipType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF(); |
|
78 |
referenceDetail = "test"; |
|
79 | 69 |
} |
80 | 70 |
|
81 | 71 |
/** |
82 | 72 |
* Test method for {@link eu.etaxonomy.cdm.api.service.TaxonNodeServiceImpl#makeTaxonNodeASynonymOfAnotherTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)}. |
83 | 73 |
*/ |
84 | 74 |
@Test |
85 |
@Ignore
|
|
75 |
@DataSet
|
|
86 | 76 |
public final void testMakeTaxonNodeASynonymOfAnotherTaxonNode() { |
77 |
classification = classificationService.load(classificationUuid); |
|
78 |
node1 = taxonNodeService.load(node1Uuid); |
|
79 |
node2 = taxonNodeService.load(node2Uuid); |
|
80 |
reference = referenceService.load(referenceUuid); |
|
81 |
synonymRelationshipType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF(); |
|
82 |
referenceDetail = "test"; |
|
83 |
|
|
84 |
// |
|
85 |
//TODO |
|
86 |
|
|
87 |
|
|
87 | 88 |
// descriptions |
89 |
t1 = node1.getTaxon(); |
|
90 |
t2 = node2.getTaxon(); |
|
91 |
Assert.assertEquals(2, t1.getDescriptions().size()); |
|
92 |
Assert.assertTrue(t2.getSynonyms().isEmpty()); |
|
93 |
Assert.assertTrue(t2.getDescriptions().size() == 0); |
|
88 | 94 |
|
89 | 95 |
taxonNodeService.makeTaxonNodeASynonymOfAnotherTaxonNode(node1, node2, synonymRelationshipType, reference, referenceDetail); |
90 | 96 |
|
91 | 97 |
Assert.assertFalse(t2.getSynonyms().isEmpty()); |
92 |
Assert.assertTrue(t2.getDescriptions().size() == 2);
|
|
98 |
Assert.assertEquals(2, t2.getDescriptions().size());
|
|
93 | 99 |
|
94 | 100 |
} |
95 | 101 |
|
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest | ||
---|---|---|
1 |
<?xml version='1.0' encoding='UTF-8'?> |
|
2 |
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dataset.xsd"> |
|
3 |
<REFERENCE ID="1" UUID="de7d1205-291f-45d9-9059-ca83fc7ade14"/> |
|
4 |
<CLASSIFICATION ID="1" UUID="6c2bc8d9-ee62-4222-be89-4a8e31770878"/> |
|
5 |
<TAXONNODE ID="1" CLASSIFICATION_ID="1"/> |
|
6 |
<CLASSIFICATION_TAXONNODE CLASSIFICATION_ID="1" ROOTNODES_ID="1" /> |
|
7 |
<TAXONNODE ID="2" TAXON_ID="1" PARENT_ID="1" CLASSIFICATION_ID="1" UUID="484a1a77-689c-44be-8e65-347d835f47e8"/> |
|
8 |
<TAXONNODE ID="3" TAXON_ID="2" PARENT_ID="1" CLASSIFICATION_ID="1" UUID="2d41f0c2-b785-4f73-a436-cc2d5e93cc5b"/> |
|
9 |
<TAXONBASE DTYPE="Taxon" ID="1" NAME_ID="1" UUID="55c3e41a-c629-40e6-aa6a-ff274ac6ddb1"/> |
|
10 |
<TAXONBASE DTYPE="Taxon" ID="2" NAME_ID="2" UUID="2659a7e0-ff35-4ee4-8493-b453756ab955"/> |
|
11 |
<TAXONBASE DTYPE="Synonym" ID="3" NAME_ID="3" UUID="3034249e-9491-4439-bcb6-9c7d68e29bce"/> |
|
12 |
<TAXONBASE DTYPE="Synonym" ID="4" NAME_ID="4" UUID="ac6c5bb1-d36d-4068-af7c-4f0bb009880d"/> |
|
13 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="54a1d7f9-79ab-4fb3-bff5-152e1046cf75"/> |
|
14 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="e7f50b04-9648-479b-bc8a-ffebf295dce9"/> |
|
15 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="3" UUID="c0439dd6-8d2b-4428-86f4-37f4a90d4583"/> |
|
16 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="4" UUID="6a5774bd-c8aa-42dc-91dd-d62d27e7ea2a"/> |
|
17 |
<SYNONYMRELATIONSHIP ID="1" UUID="cc769418-3ba4-4c1f-a4cb-b18bf42ec8e9" CITATION_ID="1" RELATEDFROM_ID="3" RELATEDTO_ID="1"/> |
|
18 |
<DESCRIPTIONBASE ID="1" UUID="56cf0c8c-18e3-4bea-9525-b9804cf57c5d" DTYPE="TaxonDescription"/> |
|
19 |
</dataset> |
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest.xml | ||
---|---|---|
1 |
<?xml version='1.0' encoding='UTF-8'?> |
|
2 |
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dataset.xsd"> |
|
3 |
<REFERENCE ID="1" UUID="de7d1205-291f-45d9-9059-ca83fc7ade14" protectedTitleCache="false" refType="5" nomenclaturallyRelevant="false" parsingProblem="0" problemEnds="-1" problemStarts="-1" /> |
|
4 |
<CLASSIFICATION ID="1" UUID="6c2bc8d9-ee62-4222-be89-4a8e31770878" protectedTitleCache="true"/> |
|
5 |
<TAXONNODE ID="1" CLASSIFICATION_ID="1" countChildren="2"/> |
|
6 |
<CLASSIFICATION_TAXONNODE CLASSIFICATION_ID="1" ROOTNODES_ID="1"/> |
|
7 |
<TAXONNODE ID="2" TAXON_ID="1" PARENT_ID="1" CLASSIFICATION_ID="1" UUID="484a1a77-689c-44be-8e65-347d835f47e8" countChildren="0"/> |
|
8 |
<TAXONNODE ID="3" TAXON_ID="2" PARENT_ID="1" CLASSIFICATION_ID="1" UUID="2d41f0c2-b785-4f73-a436-cc2d5e93cc5b" countChildren="0"/> |
|
9 |
<TAXONBASE DTYPE="Taxon" ID="1" NAME_ID="1" UUID="55c3e41a-c629-40e6-aa6a-ff274ac6ddb1" protectedTitleCache="false" doubtful="false" useNameCache="false" excluded="false" taxonStatusUnknown="false" unplaced="false" taxonomicChildrenCount="0"/> |
|
10 |
<TAXONBASE DTYPE="Taxon" ID="2" NAME_ID="2" UUID="2659a7e0-ff35-4ee4-8493-b453756ab955" protectedTitleCache="false" doubtful="false" useNameCache="false" excluded="false" taxonStatusUnknown="false" unplaced="false" taxonomicChildrenCount="0"/> |
|
11 |
<TAXONBASE DTYPE="Synonym" ID="3" NAME_ID="3" UUID="3034249e-9491-4439-bcb6-9c7d68e29bce" protectedTitleCache="false" doubtful="false" useNameCache="false"/> |
|
12 |
<TAXONBASE DTYPE="Synonym" ID="4" NAME_ID="4" UUID="ac6c5bb1-d36d-4068-af7c-4f0bb009880d" protectedTitleCache="false" doubtful="false" useNameCache="false"/> |
|
13 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="54a1d7f9-79ab-4fb3-bff5-152e1046cf75" protectedTitleCache="false" parsingProblem="0" problemEnds="-1" problemStarts="-1" protectedFullTitleCache="false" protectedAuthorshipCache="false" protectedNameCache="false" hybridFormula="false" monomHybrid="false" binomHybrid="false" trinomHybrid="false" anamorphic="false"/> |
|
14 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="e7f50b04-9648-479b-bc8a-ffebf295dce9" protectedTitleCache="false" parsingProblem="0" problemEnds="-1" problemStarts="-1" protectedFullTitleCache="false" protectedAuthorshipCache="false" protectedNameCache="false" hybridFormula="false" monomHybrid="false" binomHybrid="false" trinomHybrid="false" anamorphic="false"/> |
|
15 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="3" UUID="c0439dd6-8d2b-4428-86f4-37f4a90d4583" protectedTitleCache="false" parsingProblem="0" problemEnds="-1" problemStarts="-1" protectedFullTitleCache="false" protectedAuthorshipCache="false" protectedNameCache="false" hybridFormula="false" monomHybrid="false" binomHybrid="false" trinomHybrid="false" anamorphic="false"/> |
|
16 |
<TAXONNAMEBASE DTYPE="BotanicalName" ID="4" UUID="6a5774bd-c8aa-42dc-91dd-d62d27e7ea2a" protectedTitleCache="false" parsingProblem="0" problemEnds="-1" problemStarts="-1" protectedFullTitleCache="false" protectedAuthorshipCache="false" protectedNameCache="false" hybridFormula="false" monomHybrid="false" binomHybrid="false" trinomHybrid="false" anamorphic="false"/> |
|
17 |
<SYNONYMRELATIONSHIP ID="1" UUID="cc769418-3ba4-4c1f-a4cb-b18bf42ec8e9" CITATION_ID="1" RELATEDFROM_ID="3" RELATEDTO_ID="1" DOUBTFUL="false" PARTIAL="false" PROPARTE="false"/> |
|
18 |
<DESCRIPTIONBASE ID="1" UUID="56cf0c8c-18e3-4bea-9525-b9804cf57c5d" DTYPE="TaxonDescription" TAXON_ID="1" protectedTitleCache="false" imageGallery="false" /> |
|
19 |
<DESCRIPTIONBASE ID="2" UUID="36af5c7c-18e3-4bec-6535-a9804cf57c6e" DTYPE="TaxonDescription" TAXON_ID="1" protectedTitleCache="false" imageGallery="false" /> |
|
20 |
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="1" indescription_id="1" orderRelevant="false"/> |
|
21 |
<DESCRIPTIONELEMENTBASE DTYPE="TextData" ID="2" indescription_id="2" orderRelevant="false"/> |
|
22 |
<DESCRIPTIONELEMENTBASE_LANGUAGESTRING descriptionElementBase_id="1" multilanguagetext_id="1" multilanguagetext_mapkey_id="124" /> |
|
23 |
<DESCRIPTIONELEMENTBASE_LANGUAGESTRING descriptionElementBase_id="2" multilanguagetext_id="2" multilanguagetext_mapkey_id="124" /> |
|
24 |
<LANGUAGESTRING ID="1" TEXT="Any text"/> |
|
25 |
<LANGUAGESTRING ID="2" TEXT="Second text"/> |
|
26 |
|
|
27 |
</dataset> |
Also available in: Unified diff
bugfix for #2558 (concurrent modification in TaxonNodeServiceImpl.makeTaxonNodeASynonymOfAnotherTaxonNode(...) )