2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.io
.jaxb
;
11 import static org
.junit
.Assert
.assertEquals
;
12 import static org
.junit
.Assert
.assertFalse
;
13 import static org
.junit
.Assert
.assertNotNull
;
14 import static org
.junit
.Assert
.assertTrue
;
16 import java
.io
.InputStreamReader
;
19 import org
.junit
.Test
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
23 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
24 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
25 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEvent
;
26 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
27 import eu
.etaxonomy
.cdm
.model
.occurrence
.DeterminationEvent
;
28 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
29 import eu
.etaxonomy
.cdm
.model
.occurrence
.GatheringEvent
;
30 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
31 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTerm
;
33 public class SpecimenTest
{
35 private String resource
= "/eu/etaxonomy/cdm/io/jaxb/SpecimenTest.xml";
38 public void testUnmarshalSpecimen() throws Exception
{
39 CdmDocumentBuilder cdmDocumentBuilder
= new CdmDocumentBuilder();
40 URI uri
= new URI(URIEncoder
.encode(this.getClass().getResource(resource
).toString()));
41 DataSet dataSet
= cdmDocumentBuilder
.unmarshal(DataSet
.class, new InputStreamReader(this.getClass().getResourceAsStream(resource
)),uri
.toString());
42 // List<SpecimenOrObservationBase> occurrences = dataSet.getOccurrences();
44 DerivedUnit specimen
= (DerivedUnit
)dataSet
.getOccurrences().get(0);
45 assertNotNull("Specimen must not be null",specimen
);
47 Institution institution
= (Institution
)dataSet
.getAgents().get(0);
48 assertNotNull("Institution must not be null",institution
);
49 Person person
= (Person
)dataSet
.getAgents().get(1);
50 assertNotNull("Person must not be null", person
);
51 Taxon taxon
= (Taxon
)dataSet
.getTaxonBases().get(0);
52 assertNotNull("Taxon must not be null",taxon
);
53 TaxonName name
= dataSet
.getTaxonomicNames().get(0);
54 assertNotNull("TaxonName must not be null",name
);
55 DefinedTerm sex
= (DefinedTerm
)dataSet
.getTerms().get(1);
57 Collection collection
= dataSet
.getCollections().get(0);
58 assertNotNull("Collection must not be null", collection
);
60 FieldUnit fieldUnit
= (FieldUnit
)dataSet
.getOccurrences().get(1);
61 assertNotNull("FieldUnit must not be null", fieldUnit
);
62 assertEquals("Specimen.collection must equal Collection",collection
, specimen
.getCollection());
63 assertEquals("Collection.institute must equal Institution",institution
,collection
.getInstitute());
65 assertEquals("TaxonName must equal Specimen.storedUnder",name
,specimen
.getStoredUnder());
66 assertEquals("Sex must equal Specimen.sex",sex
,specimen
.getSex());
68 assertNotNull("Specimen.determinations must not be null",specimen
.getDeterminations());
69 assertFalse("Specimen.determinations must not be empty",specimen
.getDeterminations().isEmpty());
70 DeterminationEvent determination
= specimen
.getDeterminations().iterator().next();
71 assertEquals("Person must equal Determination.actor",person
,determination
.getActor());
73 GatheringEvent gatheringEvent
= (GatheringEvent
)dataSet
.getEventBases().get(0);
74 assertNotNull("GatheringEvent must not be null",gatheringEvent
);
76 DerivationEvent derivationEvent
= (DerivationEvent
)dataSet
.getEventBases().get(1);
77 assertNotNull("DerivationEvent must not be null",derivationEvent
);
79 assertEquals("GatheringEvent must be equal to FieldUnit.getGatheringEvent()",gatheringEvent
, fieldUnit
.getGatheringEvent());
80 assertTrue("DerivationEvent.derivatives must contain Specimen",derivationEvent
.getDerivatives().contains(specimen
));
81 assertEquals("DerivationEvent must equal Specimen.derivedFrom",derivationEvent
,specimen
.getDerivedFrom());