Revision 9338
Added by Jing Tao almost 9 years ago
test/edu/ucsb/nceas/metacat/dataone/CNodeServiceTest.java | ||
---|---|---|
33 | 33 |
import java.util.Calendar; |
34 | 34 |
import java.util.Date; |
35 | 35 |
import java.util.List; |
36 |
import java.util.ArrayList; |
|
36 | 37 |
|
37 | 38 |
import junit.framework.Test; |
38 | 39 |
import junit.framework.TestSuite; |
... | ... | |
97 | 98 |
TestSuite suite = new TestSuite(); |
98 | 99 |
suite.addTest(new CNodeServiceTest("initialize")); |
99 | 100 |
|
100 |
suite.addTest(new CNodeServiceTest("testChecksum")); |
|
101 |
/*suite.addTest(new CNodeServiceTest("testChecksum"));
|
|
101 | 102 |
suite.addTest(new CNodeServiceTest("testCreate")); |
102 | 103 |
suite.addTest(new CNodeServiceTest("testGet")); |
103 | 104 |
suite.addTest(new CNodeServiceTest("testGetFormat")); |
... | ... | |
116 | 117 |
suite.addTest(new CNodeServiceTest("testSetOwner")); |
117 | 118 |
suite.addTest(new CNodeServiceTest("readDeletedObject")); |
118 | 119 |
suite.addTest(new CNodeServiceTest("testGetSID")); |
119 |
suite.addTest(new CNodeServiceTest("testListViews")); |
|
120 |
suite.addTest(new CNodeServiceTest("testListViews"));*/
|
|
120 | 121 |
suite.addTest(new CNodeServiceTest("testUpdateSystemMetadata")); |
121 | 122 |
|
122 | 123 |
return suite; |
... | ... | |
1337 | 1338 |
} catch (Exception e) { |
1338 | 1339 |
assertTrue(e instanceof InvalidRequest); |
1339 | 1340 |
} |
1341 |
|
|
1342 |
// test cn.updateSystemMetadata will ignore the serial version and replica list |
|
1343 |
Identifier id = new Identifier(); |
|
1344 |
id.setValue(generateDocumentId()); |
|
1345 |
object1 = new ByteArrayInputStream(str1.getBytes("UTF-8")); |
|
1346 |
SystemMetadata sysmeta10 = createSystemMetadata(id, session.getSubject(), object1); |
|
1347 |
List<Replica> replicas = new ArrayList<Replica>(); |
|
1348 |
Replica replica1= new Replica(); |
|
1349 |
NodeReference node1 = new NodeReference(); |
|
1350 |
node1.setValue("node1"); |
|
1351 |
replica1.setReplicaMemberNode(node1); |
|
1352 |
replica1.setReplicationStatus(ReplicationStatus.FAILED); |
|
1353 |
replica1.setReplicaVerified(date); |
|
1354 |
replicas.add(replica1); |
|
1355 |
Replica replica2= new Replica(); |
|
1356 |
NodeReference node2 = new NodeReference(); |
|
1357 |
node2.setValue("node2"); |
|
1358 |
replica2.setReplicaMemberNode(node2); |
|
1359 |
replica2.setReplicationStatus(ReplicationStatus.FAILED); |
|
1360 |
replica2.setReplicaVerified(date); |
|
1361 |
replicas.add(replica2); |
|
1362 |
sysmeta10.setReplicaList(replicas); |
|
1363 |
sysmeta10.setArchived(false); |
|
1364 |
CNodeService.getInstance(request).create(session, id, object1, sysmeta10); |
|
1365 |
SystemMetadata result = CNodeService.getInstance(request).getSystemMetadata(session, id); |
|
1366 |
assertTrue(result.getIdentifier().equals(id)); |
|
1367 |
System.out.println("the serial version is "+result.getSerialVersion().intValue()); |
|
1368 |
assertTrue(result.getSerialVersion().intValue() == 1); |
|
1369 |
List<Replica> list1 = result.getReplicaList(); |
|
1370 |
assertTrue(list1.size()==2); |
|
1371 |
assertTrue(result.getReplica(0).getReplicaMemberNode().getValue().equals("node1")); |
|
1372 |
assertTrue(result.getReplica(0).getReplicationStatus().equals(ReplicationStatus.FAILED)); |
|
1373 |
assertTrue(result.getReplica(0).getReplicaVerified().getTime() == date.getTime()); |
|
1374 |
assertTrue(result.getReplica(1).getReplicaMemberNode().getValue().equals("node2")); |
|
1375 |
assertTrue(result.getReplica(1).getReplicationStatus().equals(ReplicationStatus.FAILED)); |
|
1376 |
assertTrue(result.getReplica(1).getReplicaVerified().getTime() == date.getTime()); |
|
1377 |
assertTrue(result.getArchived() ==false); |
|
1378 |
|
|
1379 |
Date date2 = new Date(); |
|
1380 |
SystemMetadata sysmeta11 = new SystemMetadata(); |
|
1381 |
BeanUtils.copyProperties(sysmeta11, result); |
|
1382 |
List<Replica> replicaList = new ArrayList<Replica>(); |
|
1383 |
Replica replica3= new Replica(); |
|
1384 |
NodeReference node3 = new NodeReference(); |
|
1385 |
node3.setValue("node3"); |
|
1386 |
replica3.setReplicaMemberNode(node3); |
|
1387 |
replica3.setReplicationStatus(ReplicationStatus.COMPLETED); |
|
1388 |
replica3.setReplicaVerified(date2); |
|
1389 |
replicaList.add(replica3); |
|
1390 |
sysmeta11.setReplicaList(replicaList); |
|
1391 |
sysmeta11.setSerialVersion(BigInteger.TEN); |
|
1392 |
sysmeta11.setArchived(true); |
|
1393 |
|
|
1394 |
//make sure the sysmmeta11 has the new replca list and serial version |
|
1395 |
assertTrue(sysmeta11.getSerialVersion().equals(BigInteger.TEN)); |
|
1396 |
assertTrue(sysmeta11.getReplicaList().size()==1); |
|
1397 |
assertTrue(sysmeta11.getReplica(0).getReplicaMemberNode().getValue().equals("node3")); |
|
1398 |
assertTrue(sysmeta11.getReplica(0).getReplicationStatus().equals(ReplicationStatus.COMPLETED)); |
|
1399 |
assertTrue(sysmeta11.getReplica(0).getReplicaVerified().getTime() == date2.getTime()); |
|
1400 |
|
|
1401 |
// update the system metadata with the new serial version and new replica list |
|
1402 |
// the new serial version and replica list should be ignored. |
|
1403 |
CNodeService.getInstance(request).updateSystemMetadata(session, id, sysmeta11); |
|
1404 |
SystemMetadata result2 = CNodeService.getInstance(request).getSystemMetadata(session, id); |
|
1405 |
assertTrue(result2.getIdentifier().equals(id)); |
|
1406 |
assertTrue(result2.getSerialVersion().intValue() == 1); |
|
1407 |
List<Replica> list2 = result.getReplicaList(); |
|
1408 |
assertTrue(list2.size()==2); |
|
1409 |
assertTrue(result2.getReplica(0).getReplicaMemberNode().getValue().equals("node1")); |
|
1410 |
assertTrue(result2.getReplica(0).getReplicationStatus().equals(ReplicationStatus.FAILED)); |
|
1411 |
assertTrue(result2.getReplica(0).getReplicaVerified().getTime() == date.getTime()); |
|
1412 |
assertTrue(result2.getReplica(1).getReplicaMemberNode().getValue().equals("node2")); |
|
1413 |
assertTrue(result2.getReplica(1).getReplicationStatus().equals(ReplicationStatus.FAILED)); |
|
1414 |
assertTrue(result2.getReplica(1).getReplicaVerified().getTime() == date.getTime()); |
|
1415 |
assertTrue(result2.getArchived() ==true); |
|
1340 | 1416 |
} |
1341 | 1417 |
|
1342 | 1418 |
public Session getMNSessionFromCN() throws NotImplemented, ServiceFailure { |
Also available in: Unified diff
Add a test to test the cn.updateSystemMetadata will ignore the serial version and replica list from the coming system metadata.