Project

General

Profile

Download (8.27 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.remote.view;
2

    
3
import java.io.BufferedWriter;
4
import java.io.ByteArrayOutputStream;
5
import java.io.InputStreamReader;
6
import java.io.OutputStreamWriter;
7
import java.io.StringReader;
8
import java.io.Writer;
9
import java.util.ArrayList;
10
import java.util.HashMap;
11
import java.util.HashSet;
12
import java.util.List;
13
import java.util.Map;
14
import java.util.Set;
15

    
16
import javax.xml.transform.stream.StreamResult;
17

    
18
import org.custommonkey.xmlunit.XMLAssert;
19
import org.custommonkey.xmlunit.XMLUnit;
20
import org.dozer.Mapper;
21
import org.joda.time.DateTime;
22
import org.joda.time.DateTimeZone;
23
import org.junit.Before;
24
import org.junit.Ignore;
25
import org.junit.Test;
26
import org.springframework.oxm.Marshaller;
27
import org.unitils.UnitilsJUnit4;
28
import org.unitils.spring.annotation.SpringApplicationContext;
29
import org.unitils.spring.annotation.SpringBeanByName;
30
import org.unitils.spring.annotation.SpringBeanByType;
31

    
32
import eu.etaxonomy.cdm.common.URI;
33
import eu.etaxonomy.cdm.remote.dto.dc.Relation;
34
import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameInformation;
35
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.InfoItem;
36
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.PublicationCitation;
37
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.Relationship;
38
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.SpeciesProfileModel;
39
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.StringType;
40
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonConcept;
41
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonName;
42
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonRelationshipTerm;
43
import eu.etaxonomy.cdm.remote.dto.tdwg.voc.Team;
44
import eu.etaxonomy.remote.dto.rdf.Rdf;
45

    
46
@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/applicationContext-test.xml")
47
public class RdfViewTest extends UnitilsJUnit4 {
48

    
49
	@SpringBeanByName
50
	private Marshaller marshaller;
51

    
52
	@SpringBeanByName
53
	private Marshaller rdfMarshaller;
54

    
55
    @SpringBeanByType
56
    private Mapper mapper;
57

    
58
	private Rdf rdf;
59
	private TaxonConcept taxonConcept;
60
	private SpeciesProfileModel speciesProfileModel;
61

    
62
	@Before
63
	public void setUp() throws Exception {
64
		XMLUnit.setControlParser("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
65
	    XMLUnit.setTestParser("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
66
	    XMLUnit.setSAXParserFactory("org.apache.xerces.jaxp.SAXParserFactoryImpl");
67
	    XMLUnit.setIgnoreWhitespace(true);
68

    
69
		taxonConcept = new TaxonConcept();
70

    
71
		TaxonName taxonName = new TaxonName();
72
		taxonName.setAuthorship("authorship");
73
		taxonName.setNameComplete("Aus aus");
74
		taxonName.setIdentifier(new URI("urn:lsid:example.org:names:1"));
75
		taxonConcept.setHasName(taxonName);
76
		taxonConcept.setIdentifier(new URI("urn:lsid:example.org:taxonconcepts:1"));
77
		taxonConcept.setTitle("Lorem ipsum");
78
		taxonConcept.setCreated(new DateTime(2004, 12, 25, 12, 0, 0, 0,DateTimeZone.UTC));
79

    
80
		Relation relation = new Relation();
81
		relation.setResource(new URI("http://www.example.org/"));
82
		taxonConcept.setRelation(relation);
83
		PublicationCitation publicationCitation = new PublicationCitation();
84
		taxonConcept.setPublishedIn("Lorem ipsum dolor");
85

    
86
		Team team = new Team();
87
		team.setTitle("team name");
88

    
89
		taxonConcept.setAccordingTo(team);
90

    
91
		TaxonRelationshipTerm taxonRelationshipTerm = new TaxonRelationshipTerm();
92
		taxonRelationshipTerm.setIdentifier(new URI("http://rs.e-taxonomy.eu/voc/TaxonRelationshipTerm.rdf"));
93
		Set<Relationship> relationships = new HashSet<Relationship>();
94
		Relationship relationship = new Relationship();
95
		relationship.setRelationshipCategory(taxonRelationshipTerm);
96
		TaxonConcept t = new TaxonConcept();
97
		t.setIdentifier(new URI("urn:lsid:example.org:taxonconcepts:2"));
98
		t.setTitle("Dolor sic amet");
99
		relationship.setToTaxon(t);
100
		//relationship.setFromTaxon(taxonConcept);
101
		relationships.add(relationship);
102

    
103
		taxonConcept.setHasRelationship(relationships);
104

    
105
		SpeciesProfileModel speciesProfileModel1 = new SpeciesProfileModel();
106
		speciesProfileModel1.setIdentifier(new URI("urn:lsid:example.org:descriptions:1"));
107
		speciesProfileModel1.setTitle("Description of Aus aus");
108

    
109
		Set<SpeciesProfileModel> speciesProfileModels = new HashSet<SpeciesProfileModel>();
110
		speciesProfileModels.add(speciesProfileModel1);
111
		taxonConcept.setDescribedBy(speciesProfileModels);
112
		rdf = new Rdf();
113

    
114
		speciesProfileModel = new SpeciesProfileModel();
115
		InfoItem infoItem = new InfoItem();
116
		StringType englishDescription = new StringType();
117
		englishDescription.setLang("en");
118
		englishDescription.setValue("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras tincidunt pretium quam, id tristique sem iaculis vitae. Vestibulum pharetra eros in ligula rutrum imperdiet. In lorem dui, cursus a suscipit in, pulvinar eget nisl. Phasellus ut nunc eu mauris adipiscing luctus non vel lorem. Suspendisse volutpat faucibus ante, nec bibendum libero consectetur sed. Nullam non posuere neque. Nulla egestas ullamcorper mauris nec tincidunt. Duis id nibh justo. Mauris vel felis et mi eleifend auctor a ac dui. Morbi in urna leo, eu varius lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi mollis nunc eget purus ullamcorper eget pulvinar sapien bibendum. Donec et velit augue, eu pretium mauris. Maecenas lorem leo, malesuada vitae tempor a, gravida quis dolor. Pellentesque lacus velit, sagittis quis posuere ac, rutrum a lacus. Cras dolor ligula, hendrerit at porta sed, posuere euismod mi. Sed sit amet velit turpis.");
119
		Map<Object,StringType> hasContent = new HashMap<>();
120
		hasContent.put(englishDescription.getValue(),englishDescription);
121
		infoItem.setHasContent(hasContent);
122
		Set<InfoItem> infoItems = new HashSet<>();
123
		infoItems.add(infoItem);
124
		speciesProfileModel.setHasInformation(infoItems);
125
	}
126

    
127
	@Test
128
	public void testMarshalRdf() throws Exception {
129
		rdf.addThing(taxonConcept);
130
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
131
		Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8" ));
132
		marshaller.marshal(rdf, new StreamResult(writer));
133
		writer.close();
134

    
135
		String resource = "/eu/etaxonomy/cdm/remote/view/RdfViewTest.rdf";
136
		System.out.println(new String(outputStream.toByteArray()));
137

    
138
		XMLAssert.assertXMLEqual(
139
		        new InputStreamReader(this.getClass().getResourceAsStream(resource)),
140
		        new StringReader(new String(outputStream.toByteArray())));
141
	}
142

    
143
	@Test
144
	public void testMarshalSPM() throws Exception {
145
		rdf.addThing(speciesProfileModel);
146
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
147
		Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8" ));
148
		marshaller.marshal(rdf, new StreamResult(writer));
149
		writer.close();
150

    
151
//		String resource = "/eu/etaxonomy/cdm/remote/view/RdfViewTest.rdf";
152
//		System.out.println(new String(outputStream.toByteArray()));
153
//		XMLAssert.assertXMLEqual(new InputStreamReader(this.getClass().getResourceAsStream(resource)),new StringReader(new String(outputStream.toByteArray())));
154
	}
155

    
156
	@Ignore
157
	@Test
158
	public void testNameInformationRdf() throws Exception {
159

    
160
		Map<String,List<NameInformation>> model = new HashMap<>();
161
		List<NameInformation> niList = new ArrayList<>();
162
		NameInformation ni = new NameInformation();
163
		ni.setRequest("64cf8cf8-f56a-4411-8f49-c3dc95ea257a");
164
		ni.setResponse("Platalea leucorodia Linnaeus, 1758",
165
				"Platalea leucorodia",
166
				"Species",
167
				new HashSet<>(),
168
				null,
169
				new HashSet<>(),
170
				new HashSet<>(),
171
				new HashSet<>());
172
		ni.getResponse().addToTaxonUuids("1a5bcb42-146f-42e5-9136-1b21d170163e");
173
		niList.add(ni);
174
		model.put("64cf8cf8-f56a-4411-8f49-c3dc95ea257a", niList);
175
		RdfView rdfView = new RdfView();
176
		rdfView.setMapper(mapper);
177
		rdfView.setRdfMarshaller(marshaller);
178
		rdf = rdfView.buildRdf(model);
179

    
180
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
181
		Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8" ));
182
		rdfMarshaller.marshal(rdf, new StreamResult(writer));
183
		writer.close();
184
		System.out.println(new String(outputStream.toByteArray()));
185

    
186
		String resource = "/eu/etaxonomy/cdm/remote/view/NameInformationTest.rdf";
187
		XMLAssert.assertXMLEqual(new InputStreamReader(this.getClass().getResourceAsStream(resource)),new StringReader(new String(outputStream.toByteArray())));
188
	}
189
}
(3-3/3)