Revision 7850
Added by ben leinfelder almost 11 years ago
MNodeServiceTest.java | ||
---|---|---|
26 | 26 |
package edu.ucsb.nceas.metacat.dataone; |
27 | 27 |
|
28 | 28 |
|
29 |
import gov.loc.repository.bagit.Bag; |
|
30 |
import gov.loc.repository.bagit.BagFactory; |
|
31 |
|
|
29 | 32 |
import java.io.ByteArrayInputStream; |
30 | 33 |
import java.io.ByteArrayOutputStream; |
34 |
import java.io.File; |
|
35 |
import java.io.FileOutputStream; |
|
31 | 36 |
import java.io.IOException; |
32 | 37 |
import java.io.InputStream; |
33 | 38 |
import java.io.UnsupportedEncodingException; |
... | ... | |
142 | 147 |
suite.addTest(new MNodeServiceTest("testSetAccessPolicy")); |
143 | 148 |
// MNreplication tests |
144 | 149 |
suite.addTest(new MNodeServiceTest("testReplicate")); |
150 |
// MN packaging tests |
|
151 |
suite.addTest(new MNodeServiceTest("testGetPackage")); |
|
145 | 152 |
|
146 | 153 |
|
147 | 154 |
return suite; |
... | ... | |
1091 | 1098 |
|
1092 | 1099 |
} |
1093 | 1100 |
|
1101 |
/** |
|
1102 |
* Test getting a known object |
|
1103 |
*/ |
|
1104 |
public void testGetPackage() { |
|
1105 |
printTestHeader("testGetPackage"); |
|
1106 |
|
|
1107 |
try { |
|
1108 |
Session session = getTestSession(); |
|
1109 |
Identifier guid = new Identifier(); |
|
1110 |
guid.setValue("testGetPackage." + System.currentTimeMillis()); |
|
1111 |
InputStream object = new ByteArrayInputStream("test".getBytes("UTF-8")); |
|
1112 |
SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), object); |
|
1113 |
Identifier pid = MNodeService.getInstance(request).create(session, guid, object, sysmeta); |
|
1114 |
InputStream bagStream = MNodeService.getInstance(request).getPackage(session, pid); |
|
1115 |
File bagFile = File.createTempFile("bagit", ".zip"); |
|
1116 |
IOUtils.copy(bagStream, new FileOutputStream(bagFile)); |
|
1117 |
BagFactory bagFactory = new BagFactory(); |
|
1118 |
Bag bag = bagFactory.createBag(bagFile); |
|
1119 |
InputStream result = bag.getPayload().iterator().next().newInputStream(); |
|
1120 |
|
|
1121 |
// go back to beginning of original stream |
|
1122 |
object.reset(); |
|
1123 |
// check |
|
1124 |
assertTrue(object.available() > 0); |
|
1125 |
assertTrue(result.available() > 0); |
|
1126 |
assertTrue(IOUtils.contentEquals(result, object)); |
|
1127 |
|
|
1128 |
// clean up |
|
1129 |
bagFile.delete(); |
|
1130 |
|
|
1131 |
} catch (Exception e) { |
|
1132 |
e.printStackTrace(); |
|
1133 |
fail("Unexpected error: " + e.getMessage()); |
|
1134 |
} |
|
1135 |
} |
|
1094 | 1136 |
|
1095 | 1137 |
|
1096 | 1138 |
|
Also available in: Unified diff
First pass at MN.getPackage() implementation using Bagit library from LOC. https://projects.ecoinformatics.org/ecoinfo/issues/6026