Project

General

Profile

Download (8.59 KB) Statistics
| Branch: | Tag: | Revision:
1
package org.cybertaxonomy.utis.checklist;
2

    
3
import static org.junit.Assert.assertEquals;
4
import static org.junit.Assert.assertTrue;
5

    
6
import org.cybertaxonomy.utis.tnr.msg.Classification;
7
import org.cybertaxonomy.utis.tnr.msg.NameType;
8
import org.cybertaxonomy.utis.tnr.msg.Response;
9
import org.cybertaxonomy.utis.tnr.msg.Synonym;
10
import org.cybertaxonomy.utis.tnr.msg.TnrMsg;
11
import org.cybertaxonomy.utis.utils.TnrMsgException;
12
import org.cybertaxonomy.utis.utils.TnrMsgUtils;
13
import org.junit.BeforeClass;
14
import org.junit.Test;
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

    
18
public class EEA_BDC_ClientTest {
19

    
20
    protected static final Logger logger = LoggerFactory.getLogger(EEA_BDC_ClientTest.class);
21

    
22
    static EEA_BDC_Client client;
23

    
24
    @BeforeClass
25
    public static void  setup() {
26
        client =  new EEA_BDC_Client();
27
        client.setChecklistInfo(client.buildServiceProviderInfo());
28
    }
29

    
30
    @Test
31
    public void scientificNameExact_Synonym_Test() throws DRFChecklistException, TnrMsgException {
32

    
33
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Canis dalmatinus", false);
34
        client.queryChecklist(tnrMsg);
35
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
36
        System.out.println(outputXML);
37
        assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size());
38
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
39
        assertEquals("Canis dalmatinus", response.getMatchingNameString());
40
        assertEquals("Canis aureus", response.getTaxon().getTaxonName().getCanonicalName());
41
        assertTrue(response.getTaxon().getSources().size() > 0);
42
        assertEquals(0, response.getSynonym().size());
43
    }
44

    
45
    @Test
46
    public void scientificNameExact_Accepted_Test() throws DRFChecklistException, TnrMsgException {
47

    
48
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Canis aureus", true);
49
        client.queryChecklist(tnrMsg);
50
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
51
        System.out.println(outputXML);
52
        assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size());
53
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
54
        assertEquals("Canis aureus", response.getMatchingNameString());
55
        assertEquals("Canis aureus", response.getTaxon().getTaxonName().getCanonicalName());
56
        logger.info("Accepted: " + response.getTaxon().getTaxonName().getFullName() + " (" + response.getTaxon().getUrl() + ")");
57
        assertTrue(response.getSynonym().size() > 0);
58
        for(Synonym syn : response.getSynonym()) {
59
            logger.info("Synonym: " + syn.getTaxonName().getFullName() + " (" + syn.getUrl() + ")");
60
        }
61
        Classification c = response.getTaxon().getClassification();
62
        assertEquals("Canidae", c.getFamily());
63
        assertEquals("Carnivora", c.getOrder());
64
        assertEquals("Chordata", c.getPhylum());
65
        assertEquals("Animalia", c.getKingdom());
66
    }
67

    
68
    @Test
69
    public void scientificNameExact_withSynonym_Test() throws DRFChecklistException, TnrMsgException {
70

    
71
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Prinobius myardi", true);
72
        client.queryChecklist(tnrMsg);
73
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
74
        System.out.println(outputXML);
75
        assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size());
76
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
77
        assertEquals("Prinobius myardi", response.getMatchingNameString());
78
        assertEquals("Prinobius myardi", response.getTaxon().getTaxonName().getCanonicalName());
79
        assertTrue(response.getSynonym().size() > 0);
80
        boolean prionus_germari_found = false;
81
        for(Synonym syn : response.getSynonym()) {
82
            logger.info(syn.getTaxonName().getFullName());
83
            if(syn.getTaxonName().getCanonicalName().equals("Prionus germari")) {
84
                prionus_germari_found = true;
85
            }
86
        }
87
        assertTrue(prionus_germari_found);
88
        Classification c = response.getTaxon().getClassification();
89
    }
90

    
91
    @Test
92
    public void genus_Test() throws DRFChecklistException, TnrMsgException {
93

    
94
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Prionus", true);
95
        client.queryChecklist(tnrMsg);
96
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
97
        System.out.println(outputXML);
98
        assertEquals(8, tnrMsg.getQuery().get(0).getResponse().size());
99
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
100
        assertTrue(response.getMatchingNameString().startsWith("Prionus"));
101
        assertTrue(
102
                (response.getTaxon().getTaxonName().getCanonicalName().startsWith("Prionus") && response.getMatchingNameType().equals(NameType.TAXON))
103
                ||
104
                (response.getTaxon().getTaxonName().getCanonicalName().startsWith("Prinobius") && response.getMatchingNameType().equals(NameType.SYNONYM))
105
                );
106
        Classification c = response.getTaxon().getClassification();
107
        assertEquals("Cerambycidae", c.getFamily());
108
        assertEquals("Coleoptera", c.getOrder());
109
        assertEquals("Arthropoda", c.getPhylum());
110
        assertEquals("Animalia", c.getKingdom());
111
    }
112

    
113
    @Test
114
    public void scientificNameLikeTest_1() throws DRFChecklistException, TnrMsgException {
115
        String queryString = "Cani";
116
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameLike, queryString, false);
117
        client.queryChecklist(tnrMsg);
118
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
119
        System.out.println(outputXML);
120
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() > 1);
121
        for(Response r : tnrMsg.getQuery().get(0).getResponse()) {
122
            assertTrue(r.getMatchingNameString().startsWith(queryString));
123
        }
124
    }
125

    
126
    @Test
127
    public void scientificNameLikeTest_2() throws DRFChecklistException, TnrMsgException {
128
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameLike, "Abies par", false);
129
        client.queryChecklist(tnrMsg);
130
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
131
        System.out.println(outputXML);
132
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() == 1);
133
    }
134

    
135
    @Test
136
    public void scientificNameLikeTest_3() throws DRFChecklistException, TnrMsgException {
137
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameLike, "ies par", false);
138
        client.queryChecklist(tnrMsg);
139
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
140
        System.out.println(outputXML);
141
        assertTrue("The query string should not match anything in the middle of the name.", tnrMsg.getQuery().get(0).getResponse().size() == 0);
142
    }
143

    
144
    @Test
145
    public void vernacularNameExactTest_1() throws DRFChecklistException, TnrMsgException {
146
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.vernacularNameExact, "Farkas", false);
147
        client.queryChecklist(tnrMsg);
148
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
149
        System.out.println(outputXML);
150
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() == 1);
151
        tnrMsg.getQuery().get(0).getResponse().get(0).getTaxon().getTaxonName().getCanonicalName().equals("Canis lupus");
152
    }
153

    
154
    @Test
155
    public void vernacularNameLikeTest_1() throws DRFChecklistException, TnrMsgException {
156
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.vernacularNameLike, "egwart", false);
157
        client.queryChecklist(tnrMsg);
158
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
159
        System.out.println(outputXML);
160
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() > 0);
161
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
162
        assertEquals("Cichorium intybus", response.getTaxon().getTaxonName().getCanonicalName());
163
        assertEquals("Wegwarte", response.getMatchingNameString());
164
        assertEquals(NameType.VERNACULAR_NAME, response.getMatchingNameType());
165
    }
166

    
167
    @Test
168
    public void findByIdentifierTest_1() throws DRFChecklistException, TnrMsgException {
169
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.findByIdentifier, "http://eunis.eea.europa.eu/species/1367", false);
170
        client.queryChecklist(tnrMsg);
171
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
172
        System.out.println(outputXML);
173
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() == 1);
174
        tnrMsg.getQuery().get(0).getResponse().get(0).getTaxon().getTaxonName().getCanonicalName().equals("Canis lupus");
175
    }
176
}
177

    
(3-3/8)