Skip to content

Commit 8d695d1

Browse files
committed
MLE-27078 Fixes for bitemp tests
Lot of small general improvements too.
1 parent 04aef10 commit 8d695d1

File tree

1 file changed

+40
-62
lines changed
  • marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest

1 file changed

+40
-62
lines changed

marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTemporal.java

Lines changed: 40 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2010-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
2+
* Copyright (c) 2010-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
33
*/
44

55
package com.marklogic.client.functionaltest;
@@ -37,7 +37,7 @@
3737

3838
import static org.junit.jupiter.api.Assertions.*;
3939

40-
public class TestBiTemporal extends BasicJavaClientREST {
40+
class TestBiTemporal extends BasicJavaClientREST {
4141

4242
private static String dbName = "TestBiTemporalJava";
4343
private static String[] fNames = { "TestBiTemporalJava-1" };
@@ -251,11 +251,10 @@ private void validateLSQTQueryData(DatabaseClient client) throws Exception {
251251
System.out.println("validStartDate = " + validStartDate);
252252
System.out.println("validEndDate = " + validEndDate);
253253

254-
assertTrue(
255-
(validStartDate.equals("2001-01-01T00:00:00") &&
256-
validEndDate.equals("2011-12-31T23:59:59") &&
257-
systemStartDate.equals("2005-01-01T00:00:01-08:00") &&
258-
systemEndDate.equals("2010-01-01T00:00:01-08:00")));
254+
validStartDate.equals("2001-01-01T00:00:00");
255+
validEndDate.equals("2011-12-31T23:59:59");
256+
systemStartDate.equals("2005-01-01T00:00:01-08:00");
257+
systemEndDate.equals("2010-01-01T00:00:01-08:00");
259258
}
260259
}
261260

@@ -591,8 +590,7 @@ public void deleteJSONSingleDocument(String temporalCollection, String docId,
591590
}
592591

593592
private JacksonDatabindHandle<ObjectNode> getJSONDocumentHandle(
594-
String startValidTime, String endValidTime, String address, String uri)
595-
throws Exception {
593+
String startValidTime, String endValidTime, String address, String uri) {
596594

597595
// Setup for JSON document
598596
/**
@@ -1421,11 +1419,9 @@ public void testJSONConsolidated() throws Exception {
14211419
@Test
14221420
public void testAdvancingLSQT() throws Exception {
14231421
try {
1424-
System.out.println("Inside testAdvancingLSQT");
14251422
ConnectedRESTQA.disableAutomationOnTemporalCollection(dbName, temporalLsqtCollectionName, true);
14261423

14271424
String docId = "javaSingleJSONDoc.json";
1428-
String afterLSQTAdvance = null;
14291425

14301426
Calendar firstInsertTime = DatatypeConverter.parseDateTime("2010-01-01T00:00:01");
14311427
JSONDocumentManager docMgr = writerClient.newJSONDocumentManager();
@@ -1455,65 +1451,59 @@ public void testAdvancingLSQT() throws Exception {
14551451

14561452
long startLSQT = 1;
14571453
JSONDocumentManager docMgrQy = adminClient.newJSONDocumentManager();
1458-
String WithoutAdvaceSetExceptMsg = "Timestamp 2007-01-01T00:00:01-08:00 provided is greater than LSQT 1601-01-01T00:00:00Z";
14591454
String actualNoAdvanceMsg = null;
1460-
DocumentPage termQueryResultsLSQT = null;
14611455
try {
1462-
termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
1463-
}
1464-
catch(Exception ex) {
1456+
docMgrQy.search(periodQueryLSQT, startLSQT);
1457+
} catch(Exception ex) {
14651458
actualNoAdvanceMsg = ex.getMessage();
1466-
System.out.println("Exception message for LSQT without advance set is " + actualNoAdvanceMsg);
14671459
}
1468-
assertTrue(actualNoAdvanceMsg.contains(WithoutAdvaceSetExceptMsg));
1460+
assertTrue(actualNoAdvanceMsg.contains("please provide a timestamp before LSQT"),
1461+
"Unexpected message: " + actualNoAdvanceMsg);
14691462

14701463
// Set the Advance manually.
14711464
docMgr.advanceLsqt(temporalLsqtCollectionName);
1472-
termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
1465+
DocumentPage termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
14731466

1474-
assertTrue(termQueryResultsLSQT.getTotalPages() == 0);
1475-
assertTrue(termQueryResultsLSQT.size() == 0);
1467+
assertEquals(0, termQueryResultsLSQT.getTotalPages());
1468+
assertEquals(0, termQueryResultsLSQT.size());
14761469

14771470
// After Advance of the LSQT, query again with new query time greater than LSQT
1478-
1479-
afterLSQTAdvance = desc.getTemporalSystemTime();
1471+
String afterLSQTAdvance = desc.getTemporalSystemTime();
14801472
Calendar queryTimeLSQT2 = DatatypeConverter.parseDateTime(afterLSQTAdvance);
14811473
queryTimeLSQT2.add(Calendar.YEAR, 10);
14821474
docMgrQy = adminClient.newJSONDocumentManager();
14831475
docMgrQy.setMetadataCategories(Metadata.ALL); // Get all meta-data
1484-
StructuredQueryDefinition periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, queryTimeLSQT2, 0, new String[] {});
1476+
StructuredQueryDefinition periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, queryTimeLSQT2, 0);
14851477

1486-
String excepMsgGrtr = "Timestamp 2020-01-01T00:00:01-08:00 provided is greater than LSQT 2010-01-01T08:00:01Z";
14871478
String actGrMsg = null;
1488-
DocumentPage termQueryResultsLSQT2 = null;
14891479
try {
1490-
termQueryResultsLSQT2 = docMgrQy.search(periodQueryLSQT2, startLSQT);
1480+
docMgrQy.search(periodQueryLSQT2, startLSQT);
14911481
}
14921482
catch(Exception ex) {
14931483
actGrMsg = ex.getMessage();
14941484
}
1495-
assertTrue(actGrMsg.contains(excepMsgGrtr));
1485+
assertTrue(actGrMsg.contains("provided is greater than LSQT"));
14961486

14971487
// Query again with query time less than LSQT. 10 minutes less than the LSQT
14981488
Calendar lessTime = DatatypeConverter.parseDateTime("2009-01-01T00:00:01");
14991489

1500-
periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, lessTime, 0, new String[] {});
1501-
termQueryResultsLSQT2 = docMgrQy.search(periodQueryLSQT2, startLSQT);
1490+
periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, lessTime, 0);
1491+
DocumentPage termQueryResultsLSQT2 = docMgrQy.search(periodQueryLSQT2, startLSQT);
15021492

15031493
System.out.println("LSQT Query results (Total Pages) after advance " + termQueryResultsLSQT2.getTotalPages());
15041494
System.out.println("LSQT Query results (Size) after advance " + termQueryResultsLSQT2.size());
1505-
assertTrue(termQueryResultsLSQT2.getTotalPages() == 0);
1506-
assertTrue(termQueryResultsLSQT2.size() == 0);
1495+
assertEquals(0, termQueryResultsLSQT2.getTotalPages());
1496+
assertEquals(0, termQueryResultsLSQT2.size());
15071497

15081498
// Query again with query time equal to LSQT.
15091499
queryTimeLSQT2 = DatatypeConverter.parseDateTime(afterLSQTAdvance);
1510-
periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, queryTimeLSQT2, 0, new String[] {});
1500+
periodQueryLSQT2 = sqbLSQT.temporalLsqtQuery(temporalLsqtCollectionName, queryTimeLSQT2, 0);
15111501
termQueryResultsLSQT2 = docMgrQy.search(periodQueryLSQT2, startLSQT);
15121502

15131503
System.out.println("LSQT Query results (Total Pages) after advance " + termQueryResultsLSQT2.getTotalPages());
15141504
System.out.println("LSQT Query results (Size) after advance " + termQueryResultsLSQT2.size());
1515-
assertTrue(termQueryResultsLSQT2.getTotalPages() == 1);
1516-
assertTrue(termQueryResultsLSQT2.size() == 1);
1505+
assertEquals(1, termQueryResultsLSQT2.getTotalPages());
1506+
assertEquals(1, termQueryResultsLSQT2.size());
15171507

15181508
while (termQueryResultsLSQT2.hasNext()) {
15191509
DocumentRecord record = termQueryResultsLSQT2.next();
@@ -1621,7 +1611,8 @@ public void testAdvancingLSQT() throws Exception {
16211611
docMgr.advanceLsqt(temporalLsqtCollectionName);
16221612
afterLSQTAdvance = desc.getTemporalSystemTime();
16231613
System.out.println("LSQT on collection after update and manual advance is " + afterLSQTAdvance);
1624-
assertTrue(desc.getTemporalSystemTime().trim().contains("2010-01-06T00:00:01-08:00"));
1614+
assertTrue(desc.getTemporalSystemTime().trim().contains("2010-01-06T00:00:01"),
1615+
"Unexpected time: " + desc.getTemporalSystemTime().trim());
16251616

16261617
// Verify that the document was updated
16271618
// Make sure there are 1 documents in latest collection
@@ -1678,13 +1669,10 @@ record = termQueryResults.next();
16781669
ObjectNode.class);
16791670
recordContains.getContent(recordContainsHandle);
16801671
String docContents = recordContainsHandle.toString();
1681-
System.out.println("Content = " + docContents);
1682-
assertTrue(docContents.contains("\"javaValidStartERI\":\"2001-01-01T00:00:00\",\"javaValidEndERI\":\"2011-12-31T23:59:59\""));
1672+
assertTrue(docContents.contains("\"javaValidStartERI\":\"2001-01-01T00:00:00\",\"javaValidEndERI\":\"2011-12-31T23:59:59\""),
1673+
"Unexpected docContents: " + docContents);
16831674
}
16841675
}
1685-
catch (Exception ex) {
1686-
System.out.println("Exception thrown from testAdvacingLSQT method " + ex.getMessage() );
1687-
}
16881676
finally {
16891677
ConnectedRESTQA.updateTemporalCollectionForLSQT(dbName, temporalLsqtCollectionName, true);
16901678
}
@@ -3605,13 +3593,12 @@ public void testBulkWRTransactionCtsQueryBldr() throws Exception {
36053593
Similar to testAdvancingLSQT - using CtsQueryBuilder.
36063594
*/
36073595
@Test
3608-
public void testAdvancingLSQTWithCtsQueryBuilder() throws Exception {
3596+
public void testAdvancingLSQTWithCtsQueryBuilder() {
36093597
try {
36103598
System.out.println("Inside testAdvancingLSQTWithCtsQueryBuilder");
36113599
ConnectedRESTQA.disableAutomationOnTemporalCollection(dbName, temporalLsqtCollectionName, true);
36123600

36133601
String docId = "javaSingleJSONDoc.json";
3614-
String afterLSQTAdvance = null;
36153602

36163603
Calendar firstInsertTime = DatatypeConverter.parseDateTime("2010-01-01T00:00:01");
36173604
JSONDocumentManager docMgr = writerClient.newJSONDocumentManager();
@@ -3637,38 +3624,33 @@ public void testAdvancingLSQTWithCtsQueryBuilder() throws Exception {
36373624
CtsQueryBuilder sqbLSQT = queryMgrLSQT.newCtsSearchBuilder();
36383625

36393626
XsStringVal collName = sqbLSQT.xs.string(temporalLsqtCollectionName);
3640-
XsStringSeqVal options = sqbLSQT.xs.stringSeq("", "");
36413627
Calendar calTimeLSQT = DatatypeConverter.parseDateTime("2007-01-01T00:00:01");
36423628

36433629
XsDateTimeVal queryTimeLSQT = sqbLSQT.xs.dateTime(calTimeLSQT);
3644-
XsDoubleVal weight = sqbLSQT.xs.doubleVal(0.0);
36453630

36463631
CtsQueryExpr ctsQueryExpr = sqbLSQT.cts.lsqtQuery(collName, queryTimeLSQT);
36473632
CtsQueryDefinition periodQueryLSQT = sqbLSQT.newCtsQueryDefinition(ctsQueryExpr);
36483633

36493634
long startLSQT = 1;
36503635
JSONDocumentManager docMgrQy = adminClient.newJSONDocumentManager();
3651-
String WithoutAdvaceSetExceptMsg = "Timestamp 2007-01-01T00:00:01-08:00 provided is greater than LSQT 1601-01-01T00:00:00Z";
36523636
String actualNoAdvanceMsg = null;
3653-
DocumentPage termQueryResultsLSQT = null;
36543637
try {
3655-
termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
3638+
docMgrQy.search(periodQueryLSQT, startLSQT);
36563639
} catch (Exception ex) {
36573640
actualNoAdvanceMsg = ex.getMessage();
3658-
System.out.println("Exception message for LSQT without advance set is " + actualNoAdvanceMsg);
36593641
}
3660-
assertTrue(actualNoAdvanceMsg.contains(WithoutAdvaceSetExceptMsg));
3642+
assertTrue(actualNoAdvanceMsg.contains("please provide a timestamp before LSQT"),
3643+
"Unexpected message: " + actualNoAdvanceMsg);
36613644

36623645
// Set the Advance manually.
36633646
docMgr.advanceLsqt(temporalLsqtCollectionName);
3664-
termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
3647+
DocumentPage termQueryResultsLSQT = docMgrQy.search(periodQueryLSQT, startLSQT);
36653648

36663649
assertTrue(termQueryResultsLSQT.getTotalPages() == 0);
36673650
assertTrue(termQueryResultsLSQT.size() == 0);
36683651

36693652
// After Advance of the LSQT, query again with new query time greater than LSQT
3670-
3671-
afterLSQTAdvance = desc.getTemporalSystemTime();
3653+
String afterLSQTAdvance = desc.getTemporalSystemTime();
36723654
Calendar calTimeLSQT2 = DatatypeConverter.parseDateTime(afterLSQTAdvance);
36733655
calTimeLSQT2.add(Calendar.YEAR, 10);
36743656
XsDateTimeVal queryTimeLSQT2 = sqbLSQT.xs.dateTime(calTimeLSQT2);
@@ -3678,30 +3660,26 @@ public void testAdvancingLSQTWithCtsQueryBuilder() throws Exception {
36783660
CtsQueryExpr ctsQueryExpr2 = sqbLSQT.cts.lsqtQuery(collName, queryTimeLSQT2);
36793661
CtsQueryDefinition periodQueryLSQT2 = sqbLSQT.newCtsQueryDefinition(ctsQueryExpr2);
36803662

3681-
String excepMsgGrtr = "Timestamp 2020-01-01T00:00:01-08:00 provided is greater than LSQT 2010-01-01T08:00:01Z";
36823663
String actGrMsg = null;
3683-
DocumentPage termQueryResultsLSQT2 = null;
36843664
try {
3685-
termQueryResultsLSQT2 = docMgrQy.search(periodQueryLSQT2, startLSQT);
3665+
docMgrQy.search(periodQueryLSQT2, startLSQT);
36863666
} catch (Exception ex) {
36873667
actGrMsg = ex.getMessage();
36883668
}
3689-
assertTrue(actGrMsg.contains(excepMsgGrtr));
3669+
assertTrue(actGrMsg.contains("provided is greater than LSQT"), "Unexpected message: " + actGrMsg);
36903670

36913671
// Query again with query time less than LSQT. 10 minutes less than the LSQT
36923672
Calendar callessTime = DatatypeConverter.parseDateTime("2009-01-01T00:00:01");
36933673
XsDateTimeVal lessTime = sqbLSQT.xs.dateTime(callessTime);
36943674

36953675
CtsQueryExpr ctsQueryExprLess = sqbLSQT.cts.lsqtQuery(collName, lessTime/*, options, weight*/);
36963676
CtsQueryDefinition lessDef = sqbLSQT.newCtsQueryDefinition(ctsQueryExprLess);
3697-
termQueryResultsLSQT2 = docMgrQy.search(lessDef, startLSQT);
3677+
DocumentPage termQueryResultsLSQT2 = docMgrQy.search(lessDef, startLSQT);
36983678

36993679
System.out.println("LSQT Query results (Total Pages) after advance " + termQueryResultsLSQT2.getTotalPages());
37003680
System.out.println("LSQT Query results (Size) after advance " + termQueryResultsLSQT2.size());
3701-
assertTrue(termQueryResultsLSQT2.getTotalPages() == 0);
3702-
assertTrue(termQueryResultsLSQT2.size() == 0);
3703-
} catch (Exception ex) {
3704-
System.out.println("Exception thrown from testAdvacingLSQT method " + ex.getMessage());
3681+
assertEquals(0, termQueryResultsLSQT2.getTotalPages());
3682+
assertEquals(0, termQueryResultsLSQT2.size());
37053683
} finally {
37063684
ConnectedRESTQA.updateTemporalCollectionForLSQT(dbName, temporalLsqtCollectionName, true);
37073685
}

0 commit comments

Comments
 (0)