Project

General

Profile

« Previous | Next » 

Revision 9c97664e

Added by Andreas Kohlbecker over 8 years ago

tests with more detailed expectations

View differences:

src/main/java/org/bgbm/biovel/drf/checklist/EEA_BDC_Client.java
165 165

  
166 166
        // TaxonName
167 167
        taxonName.setFullName(queryClient.objectAsString(taxonR, RdfSchema.RDFS, "label"));
168
        NameParser ecatParser = new NameParser();
169
        String nameCanonical = ecatParser.parseToCanonical(taxonName.getFullName());
170
        taxonName.setCanonicalName(nameCanonical);
168
        // TODO rename CanonicalName to scientificName? compare with dwc:scientificName
169
        taxonName.setCanonicalName(queryClient.objectAsString(taxonR, RdfSchema.EUNIS_SPECIES, "binominalName"));
171 170
        taxonName.setRank(queryClient.objectAsString(taxonR, RdfSchema.EUNIS_SPECIES, "taxonomicRank"));
172 171

  
173 172
        // Taxon
......
394 393

  
395 394
        logger.debug("processing " + (isAccepted ? "accepted taxon" : "synonym or other")  + " " + taxonR.getURI());
396 395

  
397
        // TODO: is this possible with this service?
398
        //    tnrResponse.setMatchingNameString(record.getScientificname());
399 396

  
400 397
            // case when accepted name
401 398
            if(isAccepted) {
402 399
                Taxon taxon = generateTaxon(model, taxonR);
403 400
                tnrResponse.setTaxon(taxon);
404 401
                tnrResponse.setMatchingNameType(NameType.TAXON);
402
                tnrResponse.setMatchingNameString(taxon.getTaxonName().getCanonicalName());
405 403

  
406 404
            } else {
407 405
                // case when synonym
......
414 412
                    logger.error("No accepted taxon found for " + synonymR.getURI());
415 413
                }
416 414
                tnrResponse.setMatchingNameType(NameType.SYNONYM);
417
                // TODO find accepted it is linked via eunisPrimaryName and (synonymFor)
415
                tnrResponse.setMatchingNameString(queryClient.objectAsString(synonymR, RdfSchema.EUNIS_SPECIES, "binomialName"));
418 416
            }
419 417

  
420 418
            if(request.isAddSynonymy()) {
src/main/java/org/bgbm/biovel/drf/query/SparqlClient.java
294 294
        try {
295 295
            boolean hasNoPropertiesInGraph = !_subject.listProperties().hasNext();
296 296
            if(_subject.isURIResource() && hasNoPropertiesInGraph ) {
297
                // FIXME the same uri resource is loaded multiple times
298
                //       create an in memory model as cache for the models loaded
299
                //       in the getFromUri() method
300
                //       so that all resources loaded are put into that model
301
                //       clean up the cache when it reaches a specific size
297 302
                logger.debug("loading UriResource " + _subject.getURI());
298 303
                _subject = getFromUri(_subject.getURI());
299 304
            }
src/main/java/org/bgbm/biovel/drf/utils/TnrMsgUtils.java
31 31
import org.bgbm.biovel.drf.tnr.msg.Query;
32 32
import org.bgbm.biovel.drf.tnr.msg.Query.ClientStatus;
33 33
import org.bgbm.biovel.drf.tnr.msg.Query.Request;
34
import org.bgbm.biovel.drf.tnr.msg.TaxonName;
35
import org.bgbm.biovel.drf.tnr.msg.TnrMsg;
36 34
import org.bgbm.biovel.drf.tnr.msg.Response;
35
import org.bgbm.biovel.drf.tnr.msg.TnrMsg;
37 36
import org.w3c.dom.Document;
38 37
import org.w3c.dom.Node;
39 38
import org.xml.sax.SAXException;
......
266 265
            return null;
267 266
        }
268 267

  
268
        public static TnrMsg createRequest(SearchMode searchMode, String queryString, boolean addSynonymy) {
269
            TnrMsg msg = new TnrMsg();
270
            Query q = new Query();
271
            Request r = new Request();
272
            r.setQueryString(queryString);
273
            r.setSearchMode(searchMode.name());
274
            r.setAddSynonymy(addSynonymy);
275
            q.setRequest(r);
276
            msg.getQuery().add(q);
277
            return msg;
278
        }
269 279

  
270 280

  
271 281

  
src/test/java/org/bgbm/biovel/drf/checklist/EEA_BDC_ClientTest.java
1 1
package org.bgbm.biovel.drf.checklist;
2 2

  
3
import java.util.Iterator;
4
import java.util.List;
3
import static org.junit.Assert.assertEquals;
4
import static org.junit.Assert.assertTrue;
5 5

  
6 6
import org.bgbm.biovel.drf.input.DRFCSVInputParser;
7
import org.bgbm.biovel.drf.tnr.msg.Response;
7 8
import org.bgbm.biovel.drf.tnr.msg.TnrMsg;
8
import org.bgbm.biovel.drf.utils.BiovelUtils;
9 9
import org.bgbm.biovel.drf.utils.TnrMsgException;
10 10
import org.bgbm.biovel.drf.utils.TnrMsgUtils;
11 11
import org.junit.BeforeClass;
......
14 14
public class EEA_BDC_ClientTest {
15 15

  
16 16
    private static DRFCSVInputParser parser;
17
    static EEA_BDC_Client client;
17 18

  
18 19
    @BeforeClass
19 20
    public static void  setup() {
20
        parser = new DRFCSVInputParser();
21
        client =  new EEA_BDC_Client();
22
        client.setChecklistInfo(client.buildServiceProviderInfo());
21 23
    }
22 24

  
23 25
    @Test
24
    public void scientificNameExactTest() throws DRFChecklistException, TnrMsgException {
25
        parser = new DRFCSVInputParser();
26

  
27
        List<TnrMsg> tnrMsgs = parser.parse(BiovelUtils.getResourceAsString("/org/bgbm/biovel/drf/tnr/eunis-scientificNameExact.csv","UTF-8"));
26
    public void scientificNameExact_Synonym_Test() throws DRFChecklistException, TnrMsgException {
28 27

  
29
        EEA_BDC_Client client =  new EEA_BDC_Client();
30
        client.setChecklistInfo(client.buildServiceProviderInfo());
31

  
32
        Iterator<TnrMsg> tnrMsgItr = tnrMsgs.iterator();
33
        while(tnrMsgItr.hasNext()) {
34
            TnrMsg tnrMsg = tnrMsgItr.next();
35
            TnrMsgUtils.updateWithSearchMode(tnrMsg, SearchMode.scientificNameExact);
36
            client.queryChecklist(tnrMsg);
37
            String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
38
            System.out.println(outputXML);
39
        }
28
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Canis dalmatinus", false);
29
        client.queryChecklist(tnrMsg);
30
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
31
        System.out.println(outputXML);
32
        assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size());
33
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
34
        assertEquals("Canis dalmatinus", response.getMatchingNameString());
35
        assertEquals("Canis aureus", response.getTaxon().getTaxonName().getCanonicalName());
40 36
    }
41 37

  
42 38
    @Test
43
    public void scientificNameLikeTest() throws DRFChecklistException, TnrMsgException {
44
        parser = new DRFCSVInputParser();
39
    public void scientificNameExact_Accepted_Test() throws DRFChecklistException, TnrMsgException {
45 40

  
46
        List<TnrMsg> tnrMsgs = parser.parse(BiovelUtils.getResourceAsString("/org/bgbm/biovel/drf/tnr/eunis-scientificNameLike.csv","UTF-8"));
41
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Canis lupus", true);
42
        client.queryChecklist(tnrMsg);
43
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
44
        System.out.println(outputXML);
45
        assertEquals(1, tnrMsg.getQuery().get(0).getResponse().size());
46
        Response response = tnrMsg.getQuery().get(0).getResponse().get(0);
47
        assertEquals("Canis lupus", response.getMatchingNameString());
48
        assertEquals("Canis lupus", response.getTaxon().getTaxonName().getCanonicalName());
49
        assertTrue(response.getSynonym().size() > 0);
50
    }
47 51

  
48
        EEA_BDC_Client client =  new EEA_BDC_Client();
49
        client.setChecklistInfo(client.buildServiceProviderInfo());
52
    @Test
53
    public void scientificNameLikeTest_1() throws DRFChecklistException, TnrMsgException {
54
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Cani", false);
55
        client.queryChecklist(tnrMsg);
56
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
57
        System.out.println(outputXML);
58
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() > 1);
59
    }
50 60

  
51
        Iterator<TnrMsg> tnrMsgItr = tnrMsgs.iterator();
52
        while(tnrMsgItr.hasNext()) {
53
            TnrMsg tnrMsg = tnrMsgItr.next();
54
            TnrMsgUtils.updateWithSearchMode(tnrMsg, SearchMode.scientificNameLike);
55
            client.queryChecklist(tnrMsg);
56
            String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
57
            System.out.println(outputXML);
58
        }
61
    @Test
62
    public void scientificNameLikeTest_2() throws DRFChecklistException, TnrMsgException {
63
        TnrMsg tnrMsg = TnrMsgUtils.createRequest(SearchMode.scientificNameExact, "Abies par", false);
64
        client.queryChecklist(tnrMsg);
65
        String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
66
        System.out.println(outputXML);
67
        assertTrue(tnrMsg.getQuery().get(0).getResponse().size() > 1);
59 68
    }
60 69
}
61 70

  
src/test/resources/org/bgbm/biovel/drf/tnr/eunis-scientificNameExact.csv
1
taxonName
2
Canis lupus
3
Abies pardei
4

  
src/test/resources/org/bgbm/biovel/drf/tnr/eunis-scientificNameLike.csv
1
taxonName
2
Abies par
3
Cani

Also available in: Unified diff