Project

General

Profile

Download (5.25 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.cdm.ext.openurl;
5

    
6
import java.net.URI;
7
import java.net.URISyntaxException;
8
import java.util.List;
9

    
10
import org.apache.log4j.Logger;
11
import org.junit.Assert;
12
import org.junit.Before;
13
import org.junit.BeforeClass;
14
import org.junit.Ignore;
15
import org.junit.Test;
16

    
17
import eu.etaxonomy.cdm.common.UriUtils;
18

    
19
/**
20
 * @author a.mueller
21
 *
22
 */
23
public class MobotOpenUrlServiceWrapperTest {
24
	public static final Logger logger = Logger.getLogger(MobotOpenUrlServiceWrapperTest.class);
25
	public static final String baseUrl = "http://www.biodiversitylibrary.org/openurl";
26

    
27

    
28
	private MobotOpenUrlServiceWrapper openUrlServiceWrapper;
29
	private static boolean internetIsAvailable = true;
30

    
31
	@BeforeClass
32
	public static void setUpClass() throws Exception {
33
		internetIsAvailable = true;
34
	}
35

    
36
	/**
37
	 * @throws java.lang.Exception
38
	 */
39
	@Before
40
	public void setUp() throws Exception {
41
		openUrlServiceWrapper = new MobotOpenUrlServiceWrapper();
42
		openUrlServiceWrapper.setBaseUrl(baseUrl);
43
	}
44

    
45
// ******************************* TESTS ******************************************************/
46

    
47

    
48
	@Test
49
	@Ignore // ignore web accessing tests
50
	public void testDoResolveAndPage_1() {
51

    
52
	    try {
53
            if(!UriUtils.isServiceAvailable(new URI(baseUrl), 1000)) {
54
                logger.error("Test skipped due to " + baseUrl + " being unavailable");
55
                return;
56
            }
57
        } catch (URISyntaxException e1) {
58
            logger.error(e1);
59
        }
60
		MobotOpenUrlQuery query  = new MobotOpenUrlQuery();
61
		query.refType = MobotOpenUrlServiceWrapper.ReferenceType.book;
62
		query.authorFirstName = "Samuel Wendell";
63
		query.authorFirstName = "Williston";
64
		query.publicationDate = "1908";
65
		query.startPage = "Page 16";
66

    
67
		List<OpenUrlReference> refList = openUrlServiceWrapper.doResolve(query);
68

    
69
		if (testInternetConnectivity(refList)){
70

    
71

    
72
			// Assert.assertEquals("There should be exactly 2 result for 'Linnaei Species Plantarum Europae'",
73
			// 2, refList.size());
74
			OpenUrlReference reference = refList.get(0);
75
			logger.info(reference.toString());
76
			// title cache
77
			Assert.assertEquals("Manual of North American Diptera /  by Samuel W. Williston.", reference.getTitleCache());
78
			Assert.assertEquals("Page 16", reference.getPages());
79

    
80
			// -------------------------
81

    
82
			try {
83
				refList = openUrlServiceWrapper.doPage(reference, 2);
84
			} catch (Exception e) {
85
				refList = null;
86
			}
87
			Assert.assertNotNull(refList);
88
			OpenUrlReference reference_plus1 = refList.get(0);
89
			logger.info(reference_plus1.toString());
90
			Assert.assertEquals("Manual of North American Diptera /  by Samuel W. Williston.", reference_plus1.getTitleCache());
91
			Assert.assertEquals("Page 18", reference_plus1.getPages());
92
			Assert.assertTrue(reference.getItemUri().equals(reference_plus1.getItemUri()));
93
			Assert.assertTrue(! reference.getUri().equals(reference_plus1.getUri()));
94

    
95
			logger.info(reference_plus1.getJpegImage(null, null));
96
			logger.info(reference_plus1.getJpegImage(400, 600));
97
		}
98
	}
99

    
100
	@Test
101
	@Ignore
102
	public void testDoResolveAndPage_2() {
103

    
104

    
105
	    try {
106
            if(!UriUtils.isServiceAvailable(new URI(baseUrl), 1000)) {
107
                logger.error("Test skipped due to " + baseUrl + " being unavailable");
108
                return;
109
            }
110
        } catch (URISyntaxException e1) {
111
            logger.error(e1);
112
        }
113
		MobotOpenUrlQuery query  = new MobotOpenUrlQuery();
114
		query.refType = MobotOpenUrlServiceWrapper.ReferenceType.book;
115
		query.oclcNumber = "ocm05202749";
116

    
117
		List<OpenUrlReference> refList = openUrlServiceWrapper.doResolve(query);
118

    
119
		if (testInternetConnectivity(refList)){
120

    
121

    
122
			// Assert.assertEquals("There should be exactly 2 result for 'Linnaei Species Plantarum Europae'",
123
			// 2, refList.size());
124
			OpenUrlReference reference = refList.get(0);
125
			logger.info(reference.toString());
126
			Assert.assertEquals("1830", reference.getDatePublished().getEndYear().toString());
127
			Assert.assertEquals("1797", reference.getDatePublished().getStartYear().toString());
128
		    logger.info(reference.getJpegImage(null, null));
129
		}
130
	}
131

    
132
	@Test
133
	@Ignore
134
	public void testDoResolveAndPage_3() {
135

    
136
	    try {
137
            if(!UriUtils.isServiceAvailable(new URI(baseUrl), 1000)) {
138
                logger.error("Test skipped due to " + baseUrl + " being unavailable");
139
                return;
140
            }
141
        } catch (URISyntaxException e1) {
142
            logger.error(e1);
143
        }
144
		MobotOpenUrlQuery query  = new MobotOpenUrlQuery();
145
		query.refType = MobotOpenUrlServiceWrapper.ReferenceType.book;
146
		query.authorName = "Linn\u00E9";
147
		query.abbreviation = "Sp. Pl.";
148
		query.publicationDate = "1753";
149
		query.startPage = "813";
150

    
151
		List<OpenUrlReference> refList = openUrlServiceWrapper.doResolve(query);
152

    
153
		if (testInternetConnectivity(refList)){
154

    
155
			Assert.assertTrue("There should be at least one result", refList.size() > 0);
156
			OpenUrlReference reference = refList.get(0);
157
		}
158
	}
159

    
160

    
161
	private boolean testInternetConnectivity(List<?> list) {
162
		if (list == null || list.isEmpty()){
163
			boolean result = internetIsAvailable && UriUtils.isInternetAvailable(null);
164
			internetIsAvailable = result;
165
			return result;
166

    
167
		}
168
		return true;
169
	}
170

    
171
}
    (1-1/1)