Project

General

Profile

« Previous | Next » 

Revision 9338

Added by Jing Tao almost 9 years ago

Add a test to test the cn.updateSystemMetadata will ignore the serial version and replica list from the coming system metadata.

View differences:

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