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
55package com .marklogic .client .functionaltest ;
3737
3838import 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