Skip to content

Commit 570cf34

Browse files
committed
Minor additions to checks being made. Removed comments associated with
bugs (after bug has been fixed)
1 parent c3f6003 commit 570cf34

File tree

1 file changed

+113
-32
lines changed

1 file changed

+113
-32
lines changed

test-complete/src/test/java/com/marklogic/javaclient/TestBiTemporal.java

Lines changed: 113 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@
5555
import com.marklogic.client.query.StructuredQueryDefinition;
5656
import com.marklogic.client.query.StructuredQueryBuilder.TemporalOperator;
5757

58-
// BUGS: 30098, 30092,
59-
6058
public class TestBiTemporal extends BasicJavaClientREST{
6159

6260
private static String dbName = "TestBiTemporalJava";
@@ -90,6 +88,8 @@ public class TestBiTemporal extends BasicJavaClientREST{
9088
@BeforeClass
9189
public static void setUpBeforeClass() throws Exception {
9290

91+
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "debug");
92+
9393
System.out.println("In setup");
9494
setupJavaRESTServer(dbName, fNames[0], restServerName,restPort);
9595

@@ -487,7 +487,7 @@ private JacksonDatabindHandle<ObjectNode> getJSONDocumentHandle(
487487

488488
@Test
489489
public void testInsertXMLSingleDocumentUsingTemplate() throws Exception {
490-
System.out.println("Inside testInsertXMLSingleDocumentUsingDescriptor");
490+
System.out.println("Inside testInsertXMLSingleDocumentUsingTemplate");
491491

492492
String docId = "javaSingleXMLDoc.xml";
493493
DOMHandle handle = getXMLDocumentHandle(
@@ -851,6 +851,14 @@ public void testJSONConsolidated() throws Exception {
851851
metadataHandle = new DocumentMetadataHandle();
852852
record.getMetadata(metadataHandle);
853853
Iterator<String> resCollections = metadataHandle.getCollections().iterator();
854+
855+
if (record.getUri().equals(docId)) {
856+
// Must belong to latest collection as well. So, count must be 4
857+
assert(resCollections.equals(4));
858+
}
859+
else {
860+
assert(resCollections.equals(3));
861+
}
854862
while (resCollections.hasNext()) {
855863
String collection = resCollections.next();
856864
System.out.println("Collection = " + collection);
@@ -860,6 +868,11 @@ public void testJSONConsolidated() throws Exception {
860868
!collection.equals(temporalCollectionName)) {
861869
assertFalse("Collection not what is expected: " + collection, true);
862870
}
871+
872+
if (collection.equals(latestCollectionName)) {
873+
// If there is a latest collection, docId must match the URI
874+
assert(record.getUri().equals(docId));
875+
}
863876
}
864877

865878
if (record.getFormat() != Format.JSON) {
@@ -1183,8 +1196,7 @@ record = termQueryResults.next();
11831196
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
11841197
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
11851198

1186-
// BUG: Returns a 99, when it should be 11
1187-
// assertEquals(quality, 11);
1199+
assertEquals(quality, 11);
11881200
}
11891201

11901202
if (validStartDate.contains("2008-12-31T23:59:59") && validEndDate.contains("2011-12-31T23:59:59")) {
@@ -1218,8 +1230,7 @@ record = termQueryResults.next();
12181230
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
12191231
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
12201232

1221-
// BUG: Returns a 99, when it should be 11
1222-
// assertEquals(quality, 11);
1233+
assertEquals(quality, 11);
12231234

12241235
validateMetadata(metadataHandle);
12251236
}
@@ -1253,8 +1264,7 @@ record = termQueryResults.next();
12531264
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
12541265
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
12551266

1256-
// BUG: Returns a 99, when it should be 11
1257-
// assertEquals(quality, 11);
1267+
assertEquals(quality, 11);
12581268
}
12591269
}
12601270
}
@@ -1383,8 +1393,7 @@ record = termQueryResults.next();
13831393
actualPermissions.contains("UPDATE")));
13841394
assertFalse("Document permissions difference in app-user permission", actualPermissions.contains("EXECUTE"));
13851395

1386-
// BUG: Returns a 0, when it should be 99
1387-
// assertEquals(quality, 99);
1396+
assertEquals(quality, 99);
13881397
}
13891398

13901399
if (validStartDate.contains("2001-01-01T00:00:00") && validEndDate.contains("2003-01-01T00:00:00")) {
@@ -1416,8 +1425,7 @@ record = termQueryResults.next();
14161425
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
14171426
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
14181427

1419-
// BUG: Returns a 0, when it should be 11
1420-
// assertEquals(quality, 11);
1428+
assertEquals(quality, 11);
14211429
}
14221430

14231431
if (validStartDate.contains("2008-12-31T23:59:59") && validEndDate.contains("2011-12-31T23:59:59")) {
@@ -1450,8 +1458,7 @@ record = termQueryResults.next();
14501458
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
14511459
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
14521460

1453-
// BUG: Returns a 0, when it should be 11
1454-
// assertEquals(quality, 11);
1461+
assertEquals(quality, 11);
14551462

14561463
// Properties should still be associated this document
14571464
// BUG ... This should be commented out when properties are not deleted when document is deleted
@@ -1486,8 +1493,7 @@ record = termQueryResults.next();
14861493
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
14871494
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
14881495

1489-
// BUG: Returns a 0, when it should be 11
1490-
// assertEquals(quality, 11);
1496+
assertEquals(quality, 11);
14911497
}
14921498
}
14931499
}
@@ -1696,7 +1702,6 @@ record = termQueryResults.next();
16961702
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
16971703
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
16981704
1699-
// BUG: Returns a 99, when it should be 11
17001705
// assertEquals(quality, 11);
17011706
}
17021707
@@ -1731,7 +1736,6 @@ record = termQueryResults.next();
17311736
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
17321737
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
17331738
1734-
// BUG: Returns a 99, when it should be 11
17351739
// assertEquals(quality, 11);
17361740
17371741
validateMetadata(metadataHandle);
@@ -1766,7 +1770,6 @@ record = termQueryResults.next();
17661770
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
17671771
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
17681772
1769-
// BUG: Returns a 99, when it should be 11
17701773
// assertEquals(quality, 11);
17711774
}
17721775
}
@@ -1896,7 +1899,6 @@ record = termQueryResults.next();
18961899
actualPermissions.contains("UPDATE")));
18971900
assertFalse("Document permissions difference in app-user permission", actualPermissions.contains("EXECUTE"));
18981901
1899-
// BUG: Returns a 0, when it should be 99
19001902
// assertEquals(quality, 99);
19011903
}
19021904
@@ -1929,7 +1931,6 @@ record = termQueryResults.next();
19291931
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
19301932
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
19311933
1932-
// BUG: Returns a 0, when it should be 11
19331934
// assertEquals(quality, 11);
19341935
}
19351936
@@ -1963,7 +1964,6 @@ record = termQueryResults.next();
19631964
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
19641965
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
19651966
1966-
// BUG: Returns a 0, when it should be 11
19671967
// assertEquals(quality, 11);
19681968
19691969
// Properties should still be associated this document
@@ -1999,7 +1999,6 @@ record = termQueryResults.next();
19991999
(actualPermissions.contains("app-user:[") && actualPermissions.contains("READ") &&
20002000
actualPermissions.contains("UPDATE") && actualPermissions.contains("EXECUTE")));
20012001
2002-
// BUG: Returns a 0, when it should be 11
20032002
// assertEquals(quality, 11);
20042003
}
20052004
}
@@ -2078,6 +2077,7 @@ public void testSystemTimeUsingInvalidTime() throws Exception {
20782077
}
20792078

20802079
@Test
2080+
// BUG: REST API bug around transactions fails this test
20812081
public void testTransactionCommit() throws Exception {
20822082

20832083
System.out.println("Inside testTransactionCommit");
@@ -2114,6 +2114,15 @@ public void testTransactionCommit() throws Exception {
21142114
assertEquals("Document uri wrong after insert", docId, latestDoc.getUri());
21152115
}
21162116

2117+
// Make sure document is not visible to any other transaction
2118+
readResults = docMgr.read(docId);
2119+
System.out.println("Number of results = " + readResults.size());
2120+
if (readResults.size() != 0) {
2121+
transaction.rollback();
2122+
2123+
assertEquals("Wrong number of results", 1, readResults.size());
2124+
}
2125+
21172126
try {
21182127
updateJSONSingleDocument(docId, transaction);
21192128
}
@@ -2137,7 +2146,7 @@ public void testTransactionCommit() throws Exception {
21372146
assertEquals("Wrong number of results", 1, termQueryResults.getTotalSize());
21382147
}
21392148

2140-
// There should be 1 document in docId collection
2149+
// There should be 4 documents in docId collection
21412150
queryMgr = client.newQueryManager();
21422151
sqb = queryMgr.newStructuredQueryBuilder();
21432152
termQuery = sqb.collection(docId);
@@ -2151,6 +2160,22 @@ public void testTransactionCommit() throws Exception {
21512160

21522161
assertEquals("Wrong number of results", 4, termQueryResults.getTotalSize());
21532162
}
2163+
2164+
// Search for documents using doc uri collection and no transaction object passed.
2165+
// There should be 0 documents in docId collection
2166+
queryMgr = client.newQueryManager();
2167+
sqb = queryMgr.newStructuredQueryBuilder();
2168+
termQuery = sqb.collection(docId);
2169+
2170+
start = 1;
2171+
termQueryResults = docMgr.search(termQuery, start);
2172+
System.out.println("Number of results = " + termQueryResults.getTotalSize());
2173+
2174+
if (termQueryResults.getTotalSize() != 0) {
2175+
transaction.rollback();
2176+
2177+
assertEquals("Wrong number of results", 0, termQueryResults.getTotalSize());
2178+
}
21542179

21552180
try {
21562181
deleteJSONSingleDocument(docId, transaction);
@@ -2190,6 +2215,7 @@ public void testTransactionCommit() throws Exception {
21902215
}
21912216

21922217
@Test
2218+
// BUG: REST API bug around transactions fails this test
21932219
public void testTransactionRollback() throws Exception {
21942220

21952221
System.out.println("Inside testTransaction");
@@ -2573,7 +2599,7 @@ public void testPeriodCompareQuerySingleAxisBasedOnALNContains() throws Exceptio
25732599
(validStartDate.contains("2001-01-01T00:00:00") && validEndDate.contains("2011-12-31T23:59:59")));
25742600

25752601
assertTrue("System start date check failed",
2576-
(systemStartDate.contains("2005-01-01T00:00:01") && !systemEndDate.contains("2010-01-01T00:00:01")));
2602+
(systemStartDate.contains("2005-01-01T00:00:01") && systemEndDate.contains("2010-01-01T00:00:01")));
25772603

25782604
}
25792605
}
@@ -2584,6 +2610,8 @@ public void testPeriodCompareQuerySingleAxisBasedOnALNContains() throws Exceptio
25842610

25852611
@Test
25862612
public void testLsqtQuery() throws Exception {
2613+
2614+
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "debug");
25872615
// Read documents based on document URI and ALN Contains. We are just looking for count of documents to be correct
25882616
String docId = "javaSingleJSONDoc.json";
25892617

@@ -2659,6 +2687,7 @@ public void testLsqtQuery() throws Exception {
26592687
}
26602688
}
26612689

2690+
// BUG. I believe Java API is doing a get instead of a POST that returns all documents in doc uri collection
26622691
System.out.println("Number of results using SQB = " + count);
26632692
assertEquals("Wrong number of results", 3, count);
26642693
}
@@ -2755,10 +2784,9 @@ public void testDocumentUsingCollectionNamedLatest() throws Exception {
27552784

27562785
assertTrue("Exception not thrown for invalid temporal collection", exceptionThrown);
27572786
}
2758-
27592787

27602788
@Test
2761-
// Negative test .. check if this is needed
2789+
// Negative test. Doc URI Id is the same as the temporal collection name
27622790
public void testInsertDocumentUsingDocumentURIAsCollectionName() throws Exception {
27632791
// Now insert a JSON document
27642792
String jsonDocId = "javaSingleJSONDoc.json";
@@ -2789,15 +2817,68 @@ public void testInsertDocumentUsingDocumentURIAsCollectionName() throws Exceptio
27892817
System.out.println(ex.getFailedRequest().getStatusCode());
27902818
System.out.println(ex.getFailedRequest().getMessageCode());
27912819

2792-
// BUG: Right now this returns 500 error. Bug is open to fix this
2793-
// assert(ex.getFailedRequest().getMessageCode().equals("TEMPORAL-SYSTEMTIME-BACKWARDS"));
2794-
// assert(ex.getFailedRequest().getStatusCode() == 400);
2820+
assert(ex.getFailedRequest().getMessageCode().equals("TEMPORAL-URIALREADYEXISTS"));
2821+
assert(ex.getFailedRequest().getStatusCode() == 400);
27952822
}
27962823

27972824
ConnectedRESTQA.deleteElementRangeIndexTemporalCollection("Documents", jsonDocId);
27982825

2799-
// Looks like this should fail. But is not failing
2826+
assertTrue("Exception not thrown for invalid temporal collection", exceptionThrown);
2827+
}
2828+
2829+
@Test
2830+
// Negative test. Doc URI Id is the same as the temporal collection name
2831+
// BUG 30173 exists for this non failure.
2832+
public void testCreateCollectionUsingSameNameAsDocURI() throws Exception {
2833+
// Now insert a JSON document
2834+
String jsonDocId = "javaSingleJSONDoc.json";
2835+
2836+
System.out.println("Inside testInserDocumentUsingDocumentURIAsCollectionName");
2837+
2838+
// Insert a document called as insertJSONSingleDocument
2839+
insertJSONSingleDocument(jsonDocId, null);
2840+
2841+
boolean exceptionThrown = false;
2842+
try {
2843+
// Create collection a collection with same name as doci URI
2844+
ConnectedRESTQA.addElementRangeIndexTemporalCollection(dbName, jsonDocId, axisSystemName, axisValidName);
2845+
}
2846+
catch (com.marklogic.client.FailedRequestException ex) {
2847+
exceptionThrown = true;
2848+
System.out.println(ex.getFailedRequest().getStatusCode());
2849+
System.out.println(ex.getFailedRequest().getMessageCode());
2850+
2851+
// assert(ex.getFailedRequest().getMessageCode().equals("TEMPORAL-URIALREADYEXISTS"));
2852+
// assert(ex.getFailedRequest().getStatusCode() == 400);
2853+
}
28002854
// assertTrue("Exception not thrown for invalid temporal collection", exceptionThrown);
2855+
2856+
// Create a document using the collection created above
2857+
// So, we are creating a document under a collection whose name is the same as an existing temporal doc uri
2858+
JacksonDatabindHandle<ObjectNode> handle = getJSONDocumentHandle(
2859+
"2001-01-01T00:00:00", "2011-12-31T23:59:59", "999 Skyway Park - JSON", jsonDocId);
2860+
2861+
JSONDocumentManager docMgr = client.newJSONDocumentManager();
2862+
docMgr.setMetadataCategories(Metadata.ALL);
2863+
2864+
// put meta-data
2865+
DocumentMetadataHandle mh = setMetadata(false);
2866+
2867+
exceptionThrown = false;
2868+
try {
2869+
docMgr.write("1.json", mh, handle, null, null, jsonDocId, null);
2870+
}
2871+
catch (com.marklogic.client.FailedRequestException ex) {
2872+
exceptionThrown = true;
2873+
System.out.println(ex.getFailedRequest().getStatusCode());
2874+
System.out.println(ex.getFailedRequest().getMessageCode());
2875+
2876+
// assert(ex.getFailedRequest().getMessageCode().equals("TEMPORAL-URIALREADYEXISTS"));
2877+
// assert(ex.getFailedRequest().getStatusCode() == 400);
2878+
}
2879+
2880+
ConnectedRESTQA.deleteElementRangeIndexTemporalCollection("Documents", jsonDocId);
2881+
assertTrue("Exception not thrown for invalid temporal collection", exceptionThrown);
28012882
}
28022883

28032884
public void bulkWrite() throws Exception {

0 commit comments

Comments
 (0)