Project

General

Profile

« Previous | Next » 

Revision 5359

Added by berkley almost 14 years ago

setting up the framework for the listObjects api call

View differences:

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