Revision 5359
Added by berkley almost 14 years ago
CrudServiceTest.java | ||
---|---|---|
38 | 38 |
import junit.framework.Test; |
39 | 39 |
import junit.framework.TestSuite; |
40 | 40 |
|
41 |
import org.dataone.service.exceptions.InvalidRequest; |
|
42 |
import org.dataone.service.exceptions.InvalidToken; |
|
43 |
import org.dataone.service.exceptions.NotAuthorized; |
|
44 |
import org.dataone.service.exceptions.NotImplemented; |
|
45 |
import org.dataone.service.exceptions.ServiceFailure; |
|
41 | 46 |
import org.dataone.service.types.*; |
42 | 47 |
|
43 | 48 |
import edu.ucsb.nceas.metacat.properties.PropertyService; |
... | ... | |
85 | 90 |
suite.addTest(new CrudServiceTest("testCreateAndGet")); |
86 | 91 |
suite.addTest(new CrudServiceTest("testGetSystemMetadata")); |
87 | 92 |
suite.addTest(new CrudServiceTest("testUpdate")); |
93 |
suite.addTest(new CrudServiceTest("testListObjects")); |
|
88 | 94 |
//suite.addTest(new CrudServiceTest("")); |
89 |
//suite.addTest(new CrudServiceTest("")); |
|
90 | 95 |
return suite; |
91 | 96 |
} |
92 | 97 |
|
93 | 98 |
/** |
99 |
* public ObjectList listObjects(AuthToken token, Date startTime, Date endTime, |
|
100 |
* ObjectFormat objectFormat, boolean replicaStatus, int start, int count) |
|
101 |
* throws NotAuthorized, InvalidRequest, NotImplemented, ServiceFailure, InvalidToken |
|
102 |
*/ |
|
103 |
public void testListObjects() |
|
104 |
{ |
|
105 |
printTestHeader("testListObjects"); |
|
106 |
try |
|
107 |
{ |
|
108 |
CrudService cs = CrudService.getInstance(); |
|
109 |
AuthToken token = getToken(); |
|
110 |
ObjectFormat of1 = ObjectFormat.convert("eml://ecoinformatics.org/eml-2.1.0"); |
|
111 |
ObjectFormat of2 = ObjectFormat.convert("text/plain"); |
|
112 |
//create docs at different times |
|
113 |
Date d1 = new Date(); |
|
114 |
Identifier id1 = createDoc(token, getTestDoc(), of1); |
|
115 |
SystemMetadata sm1 = getSystemMetadata(token, id1); |
|
116 |
|
|
117 |
Date d2 = new Date(); |
|
118 |
Identifier id2 = createDoc(token, getTestDoc(), of2); |
|
119 |
SystemMetadata sm2 = getSystemMetadata(token, id2); |
|
120 |
|
|
121 |
Date d3 = new Date(); |
|
122 |
Identifier id3 = createDoc(token, getTestDoc(), of1); |
|
123 |
SystemMetadata sm3 = getSystemMetadata(token, id3); |
|
124 |
|
|
125 |
Date d4 = new Date(); |
|
126 |
Identifier id4 = createDoc(token, getTestDoc(), of2); |
|
127 |
SystemMetadata sm4 = getSystemMetadata(token, id4); |
|
128 |
|
|
129 |
Date d5 = new Date(); |
|
130 |
Identifier id5 = createDoc(token, getTestDoc(), of1); |
|
131 |
SystemMetadata sm5 = getSystemMetadata(token, id5); |
|
132 |
|
|
133 |
//now get the objects for specific time ranges and test that it returns |
|
134 |
//the correct objects |
|
135 |
|
|
136 |
//should return sm1 and sm2 |
|
137 |
ObjectList list1 = cs.listObjects(token, d1, d2, null); |
|
138 |
assertTrue(list1.sizeObjectInfoList() == 2); |
|
139 |
ObjectInfo oi1 = list1.getObjectInfo(0); |
|
140 |
assertTrue(oi1.getIdentifier().getValue().equals(id1.getValue())); |
|
141 |
ObjectInfo oi2 = list1.getObjectInfo(1); |
|
142 |
assertTrue(oi2.getIdentifier().getValue().equals(id2.getValue())); |
|
143 |
|
|
144 |
//should only return sm1 |
|
145 |
ObjectList list2 = cs.listObjects(token, d1, d2, of1); |
|
146 |
assertTrue(list2.sizeObjectInfoList() == 1); |
|
147 |
ObjectInfo oi3 = list2.getObjectInfo(0); |
|
148 |
assertTrue(oi3.getIdentifier().getValue().equals(id1.getValue())); |
|
149 |
|
|
150 |
//should return sm1-sm4 |
|
151 |
ObjectList list3 = cs.listObjects(token, d1, d4, null); |
|
152 |
assertTrue(list3.sizeObjectInfoList() == 4); |
|
153 |
ObjectInfo oi4 = list3.getObjectInfo(0); |
|
154 |
assertTrue(oi4.getIdentifier().getValue().equals(id1.getValue())); |
|
155 |
ObjectInfo oi5 = list3.getObjectInfo(1); |
|
156 |
assertTrue(oi5.getIdentifier().getValue().equals(id2.getValue())); |
|
157 |
ObjectInfo oi6 = list3.getObjectInfo(2); |
|
158 |
assertTrue(oi6.getIdentifier().getValue().equals(id3.getValue())); |
|
159 |
ObjectInfo oi7 = list3.getObjectInfo(3); |
|
160 |
assertTrue(oi7.getIdentifier().getValue().equals(id4.getValue())); |
|
161 |
|
|
162 |
//should only return sm2 and sm4 |
|
163 |
ObjectList list4 = cs.listObjects(token, d1, d2, of2); |
|
164 |
assertTrue(list4.sizeObjectInfoList() == 2); |
|
165 |
ObjectInfo oi8 = list4.getObjectInfo(0); |
|
166 |
assertTrue(oi8.getIdentifier().getValue().equals(id2.getValue())); |
|
167 |
ObjectInfo oi9 = list4.getObjectInfo(1); |
|
168 |
assertTrue(oi9.getIdentifier().getValue().equals(id4.getValue())); |
|
169 |
|
|
170 |
//should return all |
|
171 |
ObjectList list5 = cs.listObjects(token, d1, d5, null); |
|
172 |
assertTrue(list5.sizeObjectInfoList() == 5); |
|
173 |
//should return 1, 3, 5 |
|
174 |
ObjectList list6 = cs.listObjects(token, d1, d2, of1); |
|
175 |
assertTrue(list5.sizeObjectInfoList() == 3); |
|
176 |
|
|
177 |
|
|
178 |
} |
|
179 |
catch(Exception e) |
|
180 |
{ |
|
181 |
fail("Error in listObjects: " + e.getMessage()); |
|
182 |
} |
|
183 |
} |
|
184 |
|
|
185 |
/** |
|
94 | 186 |
* public Identifier update(AuthToken token, Identifier guid, |
95 | 187 |
* InputStream object, Identifier obsoletedGuid, SystemMetadata sysmeta) |
96 | 188 |
* throws InvalidToken, ServiceFailure, NotAuthorized, IdentifierNotUnique, |
... | ... | |
299 | 391 |
*/ |
300 | 392 |
private Identifier createDoc(AuthToken token, String testDoc) throws Exception |
301 | 393 |
{ |
394 |
return createDoc(token, testDoc, ObjectFormat.convert("eml://ecoinformatics.org/eml-2.1.0")); |
|
395 |
} |
|
396 |
|
|
397 |
/** |
|
398 |
* create a doc using CrudService.create() and return its id |
|
399 |
*/ |
|
400 |
private Identifier createDoc(AuthToken token, String testDoc, ObjectFormat format) throws Exception |
|
401 |
{ |
|
302 | 402 |
Identifier id; |
303 | 403 |
CrudService cs = CrudService.getInstance(); |
304 | 404 |
|
... | ... | |
308 | 408 |
|
309 | 409 |
//create the system metadata then run the create method |
310 | 410 |
StringBufferInputStream sbis = new StringBufferInputStream(testDoc); |
311 |
SystemMetadata sm = createSystemMetadata(id, testDoc); |
|
411 |
SystemMetadata sm = createSystemMetadata(id, testDoc, format);
|
|
312 | 412 |
//create the doc |
313 | 413 |
cs.create(token, id, sbis, sm); |
314 | 414 |
return id; |
... | ... | |
320 | 420 |
private SystemMetadata createSystemMetadata(Identifier id, String testDoc) |
321 | 421 |
throws Exception |
322 | 422 |
{ |
423 |
return createSystemMetadata(id, testDoc, |
|
424 |
ObjectFormat.convert("eml://ecoinformatics.org/eml-2.1.0")); |
|
425 |
} |
|
426 |
|
|
427 |
/** |
|
428 |
* create system metadata with a specified id, doc and format |
|
429 |
*/ |
|
430 |
private SystemMetadata createSystemMetadata(Identifier id, String testDoc, ObjectFormat format) |
|
431 |
throws Exception |
|
432 |
{ |
|
323 | 433 |
SystemMetadata sm = new SystemMetadata(); |
324 | 434 |
//set the id |
325 | 435 |
sm.setIdentifier(id); |
326 |
sm.setObjectFormat(ObjectFormat.convert("eml://ecoinformatics.org/eml-2.1.0"));
|
|
436 |
sm.setObjectFormat(format);
|
|
327 | 437 |
//create the checksum |
328 | 438 |
String checksumS = checksum(testDoc); |
329 | 439 |
ChecksumAlgorithm ca = ChecksumAlgorithm.convert("MD5"); |
Also available in: Unified diff
setting up the framework for the listObjects api call