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
|
|