Project

General

Profile

Download (8.23 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.net.URI;
10
import java.time.ZoneId;
11
import java.time.ZonedDateTime;
12
import java.util.ArrayList;
13
import java.util.HashMap;
14
import java.util.HashSet;
15
import java.util.List;
16
import java.util.Map;
17
import java.util.Set;
18

    
19
import javax.xml.transform.stream.StreamResult;
20

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

    
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(ZonedDateTime.of(2004, 12, 25, 12, 0, 0, 0,ZoneId.systemDefault()));
79

    
80

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

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

    
90
		taxonConcept.setAccordingTo(team);
91

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

    
104
		taxonConcept.setHasRelationship(relationships);
105

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

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

    
115
		speciesProfileModel = new SpeciesProfileModel();
116
		InfoItem infoItem = new InfoItem();
117
		StringType englishDescription = new StringType();
118
		englishDescription.setLang("en");
119
		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.");
120
		Map<Object,StringType> hasContent = new HashMap<Object,StringType>();
121
		hasContent.put(englishDescription.getValue(),englishDescription);
122
		infoItem.setHasContent(hasContent);
123
		Set<InfoItem> infoItems = new HashSet<InfoItem>();
124
		infoItems.add(infoItem);
125
		speciesProfileModel.setHasInformation(infoItems);
126
	}
127

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

    
136
		String resource = "/eu/etaxonomy/cdm/remote/view/RdfViewTest.rdf";
137
		System.out.println(new String(outputStream.toByteArray()));
138
		XMLAssert.assertXMLEqual(new InputStreamReader(this.getClass().getResourceAsStream(resource)),new StringReader(new String(outputStream.toByteArray())));
139
	}
140

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

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

    
154
	@Ignore
155
	@Test
156
	public void testNameInformationRdf() throws Exception {
157

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

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

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

    
188

    
189

    
190
}
(3-3/3)