Project

General

Profile

Download (3.93 KB) Statistics
| Branch: | Tag: | Revision:
1
package org.bgbm.biovel.drf.tnr.msg;
2

    
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
import java.util.logging.Level;
7
import java.util.logging.Logger;
8

    
9
import javax.xml.bind.JAXBException;
10

    
11
import org.bgbm.biovel.drf.checklist.DRFChecklistException;
12
import org.bgbm.biovel.drf.checklist.PESIClient;
13
import org.bgbm.biovel.drf.checklist.SearchMode;
14
import org.bgbm.biovel.drf.checklist.Species2000ColClient;
15
import org.bgbm.biovel.drf.checklist.WoRMSClient;
16
import org.bgbm.biovel.drf.client.ServiceProviderInfo;
17
import org.bgbm.biovel.drf.input.DRFCSVInputParser;
18
import org.bgbm.biovel.drf.input.DRFInputException;
19
import org.bgbm.biovel.drf.utils.BiovelUtils;
20
import org.bgbm.biovel.drf.utils.JSONUtils;
21
import org.bgbm.biovel.drf.utils.TnrMsgException;
22
import org.bgbm.biovel.drf.utils.TnrMsgUtils;
23
import org.junit.BeforeClass;
24
import org.junit.Test;
25

    
26
public class WoRMSClientTest {
27
    private static final Logger logger = Logger.getLogger(WoRMSClientTest.class.getName());
28
    private static DRFCSVInputParser parser;
29
    private static List<String> nameCompleteList;
30

    
31
    private static ServiceProviderInfo ci;
32

    
33
    @BeforeClass
34
    public static void  setup() {
35

    
36
        logger.setLevel(Level.INFO);
37
        parser = new DRFCSVInputParser();
38

    
39
        nameCompleteList = new ArrayList<String>();
40
        nameCompleteList.add("Ameira divagans");
41
        nameCompleteList.add("Boccardi redeki");
42
        nameCompleteList.add("Bougainvillia rugosa");
43
        nameCompleteList.add("Branchiura sowerbyi");
44
        nameCompleteList.add("Cercopagis pengoi");
45
        nameCompleteList.add("Chelicorophium curvispinum");
46

    
47

    
48
        ci = new ServiceProviderInfo(WoRMSClient.ID,
49
                WoRMSClient.LABEL,
50
                WoRMSClient.URL,
51
                WoRMSClient.DATA_AGR_URL, ServiceProviderInfo.DEFAULT_SEARCH_MODE);
52
    }
53

    
54
    @Test
55
    public void convertChecklistInfoToJson() throws DRFChecklistException {
56
        String checklistInfoJson = JSONUtils.convertObjectToJson(ci);
57
        logger.info("ChecklistInfo : " +  checklistInfoJson);
58
    }
59

    
60
    @Test
61
    public void nameCompleteTest() throws DRFChecklistException, DRFInputException, JAXBException, TnrMsgException {
62
        parser = new DRFCSVInputParser();
63
        List<TnrMsg> tnrMsgs = parser.parse(BiovelUtils.getResourceAsString("/org/bgbm/biovel/drf/tnr/nameCompleteOnly.csv","UTF-8"));
64

    
65
        WoRMSClient wormsc =  new WoRMSClient();
66
        Iterator<TnrMsg> tnrMsgItr = tnrMsgs.iterator();
67
        while(tnrMsgItr.hasNext()) {
68
            TnrMsg tnrMsg = tnrMsgItr.next();
69
            logger.info("Querying WoRMS for name : " + tnrMsg.getQuery().get(0).getRequest().getQueryString());
70
            TnrMsgUtils.updateWithSearchMode(tnrMsg, SearchMode.scientificNameExact);
71
            wormsc.queryChecklist(tnrMsg);
72
            String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
73
            logger.info(outputXML);
74
        }
75
    }
76

    
77
    @Test
78
    public void resolveScientificNamesLikeTest() throws DRFChecklistException, DRFInputException, JAXBException, TnrMsgException {
79

    
80
        parser = new DRFCSVInputParser();
81
        List<TnrMsg> tnrMsgs = parser.parse(BiovelUtils.getResourceAsString("/org/bgbm/biovel/drf/tnr/nameCompleteOnly.csv","UTF-8"));
82

    
83
        WoRMSClient wormsc =  new WoRMSClient();
84
        // strip off the last to characters of the names since we will do a like query
85
        for (TnrMsg tnrMsg : tnrMsgs) {
86
            String name = tnrMsg.getQuery().get(0).getRequest().getQueryString();
87
            tnrMsg.getQuery().get(0).getRequest().setSearchMode(SearchMode.scientificNameExact.toString());
88
            String nameTrunk = name.substring(0, name.length() - 2);
89
            logger.info("Querying WoRMS for name : " + nameTrunk);
90

    
91
            tnrMsg.getQuery().get(0).getRequest().setQueryString(nameTrunk);
92
            wormsc.resolveScientificNamesLike(tnrMsg);
93
            String outputXML = TnrMsgUtils.convertTnrMsgToXML(tnrMsg);
94
            logger.info(outputXML);
95
        }
96

    
97
    }
98
}
99

    
(8-8/8)