vgritsenko 2003/08/13 11:54:22
Modified: java/tests/src/org/apache/xindice/integration/client/services MetaTest.java Log: Set meta data tests Revision Changes Path 1.3 +161 -35 xml-xindice/java/tests/src/org/apache/xindice/integration/client/services/MetaTest.java Index: MetaTest.java =================================================================== RCS file: /home/cvs/xml-xindice/java/tests/src/org/apache/xindice/integration/client/services/MetaTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MetaTest.java 8 Aug 2003 22:44:25 -0000 1.2 +++ MetaTest.java 13 Aug 2003 18:54:22 -0000 1.3 @@ -73,65 +73,191 @@ */ public class MetaTest extends AbstractXmlDbClientTest { + static final String DOCUMENT_ID1 = "doc1"; + static final String DOCUMENT_ID2 = "doc2"; + + static final String DOCUMENT1 = + "<?xml version=\"1.0\"?>" + + "<person>" + + " <first>John</first>" + + " <last>Smith</last>" + + " <age>30</age>" + + " <phone type=\"work\">555-345-6789</phone>" + + "</person>"; + + static final String DOCUMENT2 = + "<?xml version=\"1.0\"?>" + + "<person>" + + " <first>John</first>" + + " <last>Smith</last>" + + " <age>31</age>" + + " <phone type=\"work\">555-345-6789</phone>" + + "</person>"; + + static final String ATTRIBUTE_ID = "MetaDataAttribute"; + public void setUp() throws Exception { super.setUp(); - String document1 = "<?xml version=\"1.0\"?>" + - "<person>" + - "<first>John</first>" + - "<last>Smith</last>" + - "<age>30</age>" + - "<phone type=\"work\">555-345-6789</phone>" + - "</person>"; - - this.client.insertDocument(TEST_COLLECTION_PATH, "doc1", document1); + this.client.insertDocument(TEST_COLLECTION_PATH, DOCUMENT_ID1, DOCUMENT1); } public void tearDown() throws Exception { - this.client.removeDocument(TEST_COLLECTION_PATH, "doc1"); + this.client.removeDocument(TEST_COLLECTION_PATH, DOCUMENT_ID1); super.tearDown(); } - public void testGetMetaData() throws Exception { + public void testMetaServicePresent() throws Exception { // Get meta service Collection col = this.client.getCollection(TEST_COLLECTION_PATH); MetaService service = (MetaService) col.getService("MetaService", "1.0"); assertNotNull("MetaService is not found!", service); + } + + public void testGetCollectionMetaData() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); + + // Get meta data + MetaData data = service.getMetaData(); + assertNotNull("MetaData is not found for the collection!", data); + assertTrue("Creation time is 0!", data.getCreatedTime() != 0); + assertTrue("Modification time is 0!", data.getLastModifiedTime() != 0); + long created0 = data.getCreatedTime(); + long modified0 = data.getLastModifiedTime(); + + // Sleep and get it again + Thread.sleep(150); + data = service.getMetaData(); + long created1 = data.getCreatedTime(); + long modified1 = data.getLastModifiedTime(); + assertEquals("Creation time changed on 2nd get (diff: "+ (created1 - created0) +")!", created0, created1); + assertEquals("Modification time changed on 2nd get (diff: "+ (modified1 - modified0) +")!", modified0, modified1); + + // Sleep, add new document, and get metadata again + Thread.sleep(150); + this.client.insertDocument(TEST_COLLECTION_PATH, DOCUMENT_ID2, DOCUMENT2); + + data = service.getMetaData(); + assertNotNull("MetaData is not found for the collection after update!", data); + long created2 = data.getCreatedTime(); + long modified2 = data.getLastModifiedTime(); + assertEquals("Creation time changed on update (diff: "+ (created2 - created1) +")!", created1, created2); + assertTrue("Modification time has not changed on update!", modified1 != modified2); + } + + public void testGetDocumentMetaData() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); // Get meta data - MetaData data = service.getMetaData("doc1"); - assertNotNull("MetaData is not found for doc1!", data); - assertTrue("Created time is 0!", data.getCreatedTime() != 0); - assertTrue("Modified time is 0!", data.getLastModifiedTime() != 0); + MetaData data = service.getMetaData(DOCUMENT_ID1); + assertNotNull("MetaData is not found for document " + DOCUMENT_ID1 + "!", data); + assertTrue("Creation time is 0!", data.getCreatedTime() != 0); + assertTrue("Modification time is 0!", data.getLastModifiedTime() != 0); long created0 = data.getCreatedTime(); long modified0 = data.getLastModifiedTime(); // Sleep and get it again - Thread.sleep(500); - data = service.getMetaData("doc1"); + Thread.sleep(150); + data = service.getMetaData(DOCUMENT_ID1); long created1 = data.getCreatedTime(); long modified1 = data.getLastModifiedTime(); - assertEquals("Created time changed on 2nd get (diff: "+ (created1 - created0) +")!", created0, created1); - assertEquals("Modified time changed on 2nd get (diff: "+ (modified1 - modified0) +")!", modified0, modified1); + assertEquals("Creation time changed on 2nd get (diff: "+ (created1 - created0) +")!", created0, created1); + assertEquals("Modification time changed on 2nd get (diff: "+ (modified1 - modified0) +")!", modified0, modified1); // Sleep and update the document and get data again - Thread.sleep(500); - String document1 = "<?xml version=\"1.0\"?>" + - "<person>" + - "<first>John</first>" + - "<last>Smith</last>" + - "<age>31</age>" + - "<phone type=\"work\">555-345-6789</phone>" + - "</person>"; - this.client.updateDocument(TEST_COLLECTION_PATH, "doc1", document1); + Thread.sleep(150); + this.client.updateDocument(TEST_COLLECTION_PATH, DOCUMENT_ID1, DOCUMENT2); - data = service.getMetaData("doc1"); - assertNotNull("MetaData is not found for doc1 after update!", data); + data = service.getMetaData(DOCUMENT_ID1); + assertNotNull("MetaData is not found for document " + DOCUMENT_ID1 + " after update!", data); long created2 = data.getCreatedTime(); long modified2 = data.getLastModifiedTime(); - assertEquals("Created time changed on update (diff: "+ (created2 - created1) +")!", created1, created2); - assertTrue("Modified time has not changed on update", modified1 != modified2); + assertEquals("Creation time changed on update (diff: "+ (created2 - created1) +")!", created1, created2); + assertTrue("Modification time has not changed on update!", modified1 != modified2); } -} + public void testSetCollectionMetaData() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); + + // Get meta data + MetaData data = service.getMetaData(); + long created0 = data.getCreatedTime(); + long modified0 = data.getLastModifiedTime(); + + // Sleep and set metadata + Thread.sleep(150); + data.setContext(created0 - 500, modified0 - 500); + service.setMetaData(data); + + // Get metadata again + data = service.getMetaData(); + long created1 = data.getCreatedTime(); + long modified1 = data.getLastModifiedTime(); + assertEquals("Creation time changed on set (diff: "+ (created1 - created0) +")!", created0, created1); + assertEquals("Modification time changed on set (diff: "+ (modified1 - modified0) +")!", modified0, modified1); + } + + public void testSetDocumentMetaData() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); + + // Get meta data + MetaData data = service.getMetaData(DOCUMENT_ID1); + long created0 = data.getCreatedTime(); + long modified0 = data.getLastModifiedTime(); + + // Sleep and set metadata + Thread.sleep(150); + data.setContext(created0 - 500, modified0 - 500); + service.setMetaData(DOCUMENT_ID1, data); + + // Get metadata again + data = service.getMetaData(DOCUMENT_ID1); + long created1 = data.getCreatedTime(); + long modified1 = data.getLastModifiedTime(); + assertEquals("Creation time changed on set (diff: "+ (created1 - created0) +")!", created0, created1); + assertEquals("Modification time changed on set (diff: "+ (modified1 - modified0) +")!", modified0, modified1); + } + + public void testSetCollectionMetaDataProperty() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); + + // Get meta data + String value0 = "MetaAttributeValue" + System.currentTimeMillis(); + MetaData data = service.getMetaData(); + data.setAttribute(ATTRIBUTE_ID, value0); + service.setMetaData(data); + + // Get metadata again + data = service.getMetaData(); + String value1 = (String)data.getAttribute(ATTRIBUTE_ID); + assertEquals("Attribute value does not match!", value0, value1); + } + + public void testSetDocumentMetaDataProperty() throws Exception { + // Get meta service + Collection col = this.client.getCollection(TEST_COLLECTION_PATH); + MetaService service = (MetaService) col.getService("MetaService", "1.0"); + + // Get meta data + String value0 = "MetaAttributeValue" + System.currentTimeMillis(); + MetaData data = service.getMetaData(DOCUMENT_ID1); + data.setAttribute(ATTRIBUTE_ID, value0); + service.setMetaData(DOCUMENT_ID1, data); + + // Get metadata again + data = service.getMetaData(DOCUMENT_ID1); + String value1 = (String)data.getAttribute(ATTRIBUTE_ID); + assertEquals("Attribute value does not match!", value0, value1); + } +}