From 50a4c9b8ad9d1f44be8484f358f86dd6f8cad872 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Wed, 16 Jul 2025 13:23:29 -0700 Subject: [PATCH 1/7] Integration tests for SaveRowsApiCommand --- .../labkey/test/tests/JavaClientApiTest.java | 182 +++++++++++++++++- 1 file changed, 177 insertions(+), 5 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index 4ac7ddfd55..e1ec035fcc 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -34,6 +34,8 @@ import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; +import org.labkey.remoteapi.query.SaveRowsApiResponse; +import org.labkey.remoteapi.query.SaveRowsCommand; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; @@ -41,6 +43,9 @@ import org.labkey.remoteapi.query.TruncateTableCommand; import org.labkey.remoteapi.query.TruncateTableResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; +import org.labkey.remoteapi.query.SaveRowsApiCommand; +import org.labkey.remoteapi.query.SaveRowsApiCommand.Command; +import org.labkey.remoteapi.query.SaveRowsApiCommand.CommandType; import org.labkey.remoteapi.security.AddGroupMembersCommand; import org.labkey.remoteapi.security.CreateGroupCommand; import org.labkey.remoteapi.security.CreateGroupResponse; @@ -84,16 +89,15 @@ import static org.junit.Assert.fail; /** - * Test for the Java Client API library. This test is written in - * Selenium because we don't yet have a way to create a list via - * the API, so this test will set up a list and then use the Java - * client API library to insert, read, update, and delete from that list + * Tests for the Java Client API library. */ @Category({Daily.class}) @BaseWebDriverTest.ClassTimeout(minutes = 4) public class JavaClientApiTest extends BaseWebDriverTest { public static final String PROJECT_NAME = JavaClientApiTest.class.getSimpleName() + " Project " + TRICKY_CHARACTERS_FOR_PROJECT_NAMES; + private static final String SUB_FOLDER_NAME = "Folder " + TRICKY_CHARACTERS_FOR_PROJECT_NAMES; + private static final String SUB_FOLDER_PATH = PROJECT_NAME + "/" + SUB_FOLDER_NAME; public static final String LIST_NAME = "People" + FieldDefinition.DOMAIN_TRICKY_CHARACTERS; public static final String LAST_NAME = "LastName" + FieldDefinition.TRICKY_CHARACTERS; public static final String USER_NAME = "user1@javaclientapi.test"; @@ -113,7 +117,8 @@ public static void doSetup() throws Exception @LogMethod private void setupProject() throws Exception { - _containerHelper.createProject(getProjectName(), null); + _containerHelper.createProject(getProjectName()); + _containerHelper.createSubfolder(getProjectName(), SUB_FOLDER_NAME); clickProject(PROJECT_NAME); PortalHelper portalHelper = new PortalHelper(this); @@ -602,6 +607,173 @@ public void testImpersonationConnection() throws Exception cn.stopImpersonating(); } + @Test + public void testSaveRowsApiCommand() throws Exception + { + // Arrange + String schemaName = "lists"; + String playersListName = "Players " + FieldDefinition.DOMAIN_TRICKY_CHARACTERS; + Connection conn = createDefaultConnection(); + + String teamsListName = "Teams " + FieldDefinition.DOMAIN_TRICKY_CHARACTERS; + + // Create lists + { + CreateDomainCommand createdListCmd = new CreateDomainCommand("IntList", playersListName); + createdListCmd.setOptions(Map.of("keyName", "JerseyNumber", "keyType", "Integer")); + + Domain domain = createdListCmd.getDomainDesign(); + domain.setFields(List.of( + new PropertyDescriptor("FirstName", "First Name", "string"), + new PropertyDescriptor("LastName", "Last Name", "string"), + new PropertyDescriptor("Team", null, "string") + )); + + createdListCmd.execute(conn, PROJECT_NAME); + + createdListCmd = new CreateDomainCommand("VarList", teamsListName); + createdListCmd.setOptions(Map.of("keyName", "Team")); + + domain = createdListCmd.getDomainDesign(); + domain.setFields(List.of( + new PropertyDescriptor("City", null, "string"), + new PropertyDescriptor("Team", "Team Name", "string") + )); + + createdListCmd.execute(conn, SUB_FOLDER_PATH); + } + + // Add some initial data + { + InsertRowsCommand insertCmd = new InsertRowsCommand(schemaName, playersListName); + insertCmd.addRow(Map.of("FirstName", "Alvin", "LastName", "David", "JerseyNumber", 21, "Team", "Seattle Mariners")); + insertCmd.addRow(Map.of("FirstName", "Jay", "LastName", "Buhner", "JerseyNumber", 19, "Team", "New York Yankees")); + insertCmd.addRow(Map.of("FirstName", "Ken", "LastName", "Phelps", "JerseyNumber", 44, "Team", "Seattle Mariners")); + + insertCmd.execute(conn, PROJECT_NAME); + + insertCmd = new InsertRowsCommand(schemaName, teamsListName); + insertCmd.addRow(Map.of("City", "New York", "Team", "Yankees")); + insertCmd.addRow(Map.of("City", "New York", "Team", "Giants")); + insertCmd.addRow(Map.of("City", "Brooklyn", "Team", "Dodgers")); + insertCmd.addRow(Map.of("City", "Montreal", "Team", "Expos")); + insertCmd.addRow(Map.of("City", "Seattle", "Team", "Pilots")); + + insertCmd.execute(conn, SUB_FOLDER_PATH); + } + + SaveRowsApiCommand saveCmd = new SaveRowsApiCommand(); + + // Draft Ken Griffey Jr. + saveCmd.addCommand(new Command(CommandType.Insert, schemaName, playersListName, List.of( + Map.of("FirstName", "Ken", "LastName", "Griffey Jr.", "JerseyNumber", 24, "Team", "Seattle Mariners") + ))); + + // Trade for Jay Buhner + List> rows = List.of( + Map.of("JerseyNumber", 19, "Team", "Seattle Mariners"), + Map.of("JerseyNumber", 44, "Team", "New York Yankees") + ); + Command command = new Command(CommandType.Update, schemaName, playersListName, rows) + .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) + .setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); + saveCmd.addCommand(command); + + // Alvin Davis retires + saveCmd.addCommand(new Command(CommandType.Delete, schemaName, playersListName, List.of(Map.of("JerseyNumber", 21)))); + + // Teams move west + rows = List.of( + Map.of("Team", "Dodgers", "City", "Los Angeles"), + Map.of("Team", "Giants", "City", "San Francisco") + ); + command = new Command(CommandType.Update, schemaName, teamsListName, rows) + .setContainerPath(SUB_FOLDER_PATH) + .setSkipReselectRows(true); + saveCmd.addCommand(command); + + // Some teams are relegated to history + rows = List.of(Map.of("Team", "Expos"), Map.of("Team", "Pilots")); + command = new Command(CommandType.Delete, schemaName, teamsListName, rows) + .setContainerPath(SUB_FOLDER_PATH) + .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) + .setAuditUserComment("Expos and Pilots no longer play ball"); + saveCmd.addCommand(command); + + // Act + // Execute multiple query operations using a saveRows command + SaveRowsApiResponse response = saveCmd.execute(conn, PROJECT_NAME); + + // Assert + assertEquals(200, response.getStatusCode()); + assertEquals(0, response.getErrorCount()); + assertEquals(5, response.getResults().size()); + + // Verify saveRows results per command + { + var result = response.getResults().get(0); + assertEquals("insert", result.getCommand()); + assertEquals(1, result.getRowsAffected()); + assertEquals(0, result.getTransactionAuditId()); + + result = response.getResults().get(1); + assertEquals("update", result.getCommand()); + assertEquals(2, result.getRowsAffected()); + assertTrue("Expected a transaction auditId to be provided", result.getTransactionAuditId() > 0); + + result = response.getResults().get(2); + assertEquals("delete", result.getCommand()); + assertEquals(1, result.getRowsAffected()); + assertEquals(0, result.getTransactionAuditId()); + + result = response.getResults().get(3); + assertEquals("update", result.getCommand()); + assertEquals(2, result.getRowsAffected()); + assertEquals(0, result.getTransactionAuditId()); + + result = response.getResults().get(4); + assertEquals("delete", result.getCommand()); + assertEquals(2, result.getRowsAffected()); + assertTrue("Expected a transaction auditId to be provided", result.getTransactionAuditId() > 0); + } + + // Verify players list after operations + { + var selectRowsCommand = new SelectRowsCommand(schemaName, playersListName); + selectRowsCommand.addSort(new Sort("JerseyNumber", Sort.Direction.ASCENDING)); + + var resp = selectRowsCommand.execute(conn, PROJECT_NAME); + assertEquals(3, resp.getRowCount()); + + var players = resp.getRows(); + assertEquals(19, players.get(0).get("jerseyNumber")); // verify case-insensitive + assertEquals("Seattle Mariners", players.get(0).get("Team")); + assertEquals(24, players.get(1).get("Jerseynumber")); // verify case-insensitive + assertEquals("Seattle Mariners", players.get(1).get("Team")); + assertEquals(44, players.get(2).get("JerseyNumber")); + assertEquals("New York Yankees", players.get(2).get("Team")); + } + + // Verify teams list after operations + { + var selectRowsCommand = new SelectRowsCommand(schemaName, teamsListName); + selectRowsCommand.addSort(new Sort("City", Sort.Direction.ASCENDING)); + + var resp = selectRowsCommand.execute(conn, SUB_FOLDER_PATH); + assertEquals(3, resp.getRowCount()); + + var teams = resp.getRows(); + assertEquals("Los Angeles", teams.get(0).get("City")); + assertEquals("Dodgers", teams.get(0).get("Team")); + + assertEquals("New York", teams.get(1).get("City")); + assertEquals("Yankees", teams.get(1).get("Team")); + + assertEquals("San Francisco", teams.get(2).get("City")); + assertEquals("Giants", teams.get(2).get("Team")); + } + } + @Override protected void doCleanup(boolean afterTest) throws TestTimeoutException { From 018789db7741ebc96a5fb6f0e4c02a66fb7846e3 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 09:42:22 -0700 Subject: [PATCH 2/7] addCommands --- src/org/labkey/test/tests/JavaClientApiTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index e1ec035fcc..8e19aff211 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -665,7 +665,7 @@ public void testSaveRowsApiCommand() throws Exception SaveRowsApiCommand saveCmd = new SaveRowsApiCommand(); // Draft Ken Griffey Jr. - saveCmd.addCommand(new Command(CommandType.Insert, schemaName, playersListName, List.of( + saveCmd.addCommands(new Command(CommandType.Insert, schemaName, playersListName, List.of( Map.of("FirstName", "Ken", "LastName", "Griffey Jr.", "JerseyNumber", 24, "Team", "Seattle Mariners") ))); @@ -677,10 +677,10 @@ public void testSaveRowsApiCommand() throws Exception Command command = new Command(CommandType.Update, schemaName, playersListName, rows) .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) .setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); - saveCmd.addCommand(command); + saveCmd.addCommands(command); // Alvin Davis retires - saveCmd.addCommand(new Command(CommandType.Delete, schemaName, playersListName, List.of(Map.of("JerseyNumber", 21)))); + saveCmd.addCommands(new Command(CommandType.Delete, schemaName, playersListName, List.of(Map.of("JerseyNumber", 21)))); // Teams move west rows = List.of( @@ -690,7 +690,7 @@ public void testSaveRowsApiCommand() throws Exception command = new Command(CommandType.Update, schemaName, teamsListName, rows) .setContainerPath(SUB_FOLDER_PATH) .setSkipReselectRows(true); - saveCmd.addCommand(command); + saveCmd.addCommands(command); // Some teams are relegated to history rows = List.of(Map.of("Team", "Expos"), Map.of("Team", "Pilots")); @@ -698,7 +698,7 @@ public void testSaveRowsApiCommand() throws Exception .setContainerPath(SUB_FOLDER_PATH) .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) .setAuditUserComment("Expos and Pilots no longer play ball"); - saveCmd.addCommand(command); + saveCmd.addCommands(command); // Act // Execute multiple query operations using a saveRows command From 4ad44691d0ed7e745ba68c9bf0d8193880319c98 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 09:50:39 -0700 Subject: [PATCH 3/7] SaveRowsCommand -> BaseRowsCommand --- src/org/labkey/test/tests/JavaClientApiTest.java | 6 +++--- src/org/labkey/test/tests/TriggerScriptTest.java | 4 ++-- src/org/labkey/test/util/query/QueryApiHelper.java | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index 8e19aff211..0294efb2b5 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -35,7 +35,7 @@ import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.SaveRowsApiResponse; -import org.labkey.remoteapi.query.SaveRowsCommand; +import org.labkey.remoteapi.query.BaseRowsCommand; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; @@ -675,7 +675,7 @@ public void testSaveRowsApiCommand() throws Exception Map.of("JerseyNumber", 44, "Team", "New York Yankees") ); Command command = new Command(CommandType.Update, schemaName, playersListName, rows) - .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) + .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) .setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); saveCmd.addCommands(command); @@ -696,7 +696,7 @@ public void testSaveRowsApiCommand() throws Exception rows = List.of(Map.of("Team", "Expos"), Map.of("Team", "Pilots")); command = new Command(CommandType.Delete, schemaName, teamsListName, rows) .setContainerPath(SUB_FOLDER_PATH) - .setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED) + .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) .setAuditUserComment("Expos and Pilots no longer play ball"); saveCmd.addCommands(command); diff --git a/src/org/labkey/test/tests/TriggerScriptTest.java b/src/org/labkey/test/tests/TriggerScriptTest.java index 2e5a227cbc..cb8eacdf7b 100644 --- a/src/org/labkey/test/tests/TriggerScriptTest.java +++ b/src/org/labkey/test/tests/TriggerScriptTest.java @@ -25,7 +25,7 @@ import org.labkey.remoteapi.Connection; import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsCommand; +import org.labkey.remoteapi.query.BaseRowsCommand; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; import org.labkey.test.BaseWebDriverTest; @@ -714,7 +714,7 @@ private void doIndividualTriggerTest(String dataRegionName, GoToDataUI goToData, * @param expected error message to check * @param cn connection object to run against */ - private void assertAPIErrorMessage(SaveRowsCommand cmd, String expected, Connection cn) throws IOException + private void assertAPIErrorMessage(BaseRowsCommand cmd, String expected, Connection cn) throws IOException { try { diff --git a/src/org/labkey/test/util/query/QueryApiHelper.java b/src/org/labkey/test/util/query/QueryApiHelper.java index 021621e09d..6f758249e5 100644 --- a/src/org/labkey/test/util/query/QueryApiHelper.java +++ b/src/org/labkey/test/util/query/QueryApiHelper.java @@ -12,7 +12,7 @@ import org.labkey.remoteapi.query.ImportDataCommand; import org.labkey.remoteapi.query.ImportDataResponse; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsCommand; +import org.labkey.remoteapi.query.BaseRowsCommand; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; @@ -90,7 +90,7 @@ public SaveRowsResponse insertRows(List> rows) throws IOExce InsertRowsCommand insertRowsCommand = new InsertRowsCommand(_schema, _query); insertRowsCommand.setRows(rows); insertRowsCommand.setTimeout(_insertTimout); - insertRowsCommand.setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED); + insertRowsCommand.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); return insertRowsCommand.execute(_connection, _containerPath); } @@ -99,7 +99,7 @@ public SaveRowsResponse updateRows(List> rows) throws IOExce UpdateRowsCommand updateRowsCommand = new UpdateRowsCommand(_schema, _query); updateRowsCommand.setRows(rows); updateRowsCommand.setTimeout(_insertTimout); - updateRowsCommand.setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED); + updateRowsCommand.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); return updateRowsCommand.execute(_connection, _containerPath); } @@ -127,7 +127,7 @@ public SaveRowsResponse deleteRows(List> rowsToDelete) throws { DeleteRowsCommand cmd = new DeleteRowsCommand(_schema, _query); cmd.setRows(rowsToDelete); - cmd.setAuditBehavior(SaveRowsCommand.AuditBehavior.DETAILED); + cmd.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); return cmd.execute(_connection, _containerPath); } From 7d05e874b4898ee7e3bd69acfdcd68ba29aae69d Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 09:55:20 -0700 Subject: [PATCH 4/7] SaveRowsResponse -> RowsResponse --- src/org/labkey/test/WebTestHelper.java | 4 ++-- src/org/labkey/test/tests/ApiKeyTest.java | 4 ++-- src/org/labkey/test/tests/AuditLogTest.java | 4 ++-- src/org/labkey/test/tests/ContainerContextTest.java | 10 +++++----- src/org/labkey/test/tests/DomainDesignerTest.java | 4 ++-- src/org/labkey/test/tests/ExternalSchemaTest.java | 10 +++++----- src/org/labkey/test/tests/JavaClientApiTest.java | 6 +++--- src/org/labkey/test/tests/SampleTypeLimitsTest.java | 8 ++++---- src/org/labkey/test/tests/SampleTypeLineageTest.java | 8 ++++---- .../labkey/test/tests/SampleTypeRemoteAPITest.java | 6 +++--- src/org/labkey/test/tests/ScriptValidationTest.java | 6 +++--- src/org/labkey/test/tests/SimpleModuleTest.java | 10 +++++----- src/org/labkey/test/tests/TriggerScriptTest.java | 10 +++++----- src/org/labkey/test/util/TestDataGenerator.java | 12 ++++++------ .../labkey/test/util/di/DataIntegrationHelper.java | 6 +++--- src/org/labkey/test/util/query/QueryApiHelper.java | 8 ++++---- 16 files changed, 58 insertions(+), 58 deletions(-) diff --git a/src/org/labkey/test/WebTestHelper.java b/src/org/labkey/test/WebTestHelper.java index 4ecf3bc33a..f231d55fcf 100644 --- a/src/org/labkey/test/WebTestHelper.java +++ b/src/org/labkey/test/WebTestHelper.java @@ -49,7 +49,7 @@ import org.labkey.remoteapi.SimplePostCommand; import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.serverapi.reader.Readers; import org.labkey.test.util.InstallCert; @@ -200,7 +200,7 @@ public static void deleteApiKey(Connection connection, String apiKey) { DeleteRowsCommand deleteRowsCommand = new DeleteRowsCommand("core", "apiKeys"); deleteRowsCommand.setRows(rows); - SaveRowsResponse response = deleteRowsCommand.execute(connection, null); + RowsResponse response = deleteRowsCommand.execute(connection, null); savedApiKeys.remove(apiKey); deletedApiKeys.add(apiKey); Assert.assertEquals("Wrong number of rows affected by apiKey deletion", 1, response.getRowsAffected()); diff --git a/src/org/labkey/test/tests/ApiKeyTest.java b/src/org/labkey/test/tests/ApiKeyTest.java index 6e47d1f6cb..d2031847d3 100644 --- a/src/org/labkey/test/tests/ApiKeyTest.java +++ b/src/org/labkey/test/tests/ApiKeyTest.java @@ -32,7 +32,7 @@ import org.labkey.remoteapi.query.GetQueryDetailsResponse; import org.labkey.remoteapi.query.GetSchemasCommand; import org.labkey.remoteapi.query.ImportDataResponse; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; @@ -379,7 +379,7 @@ private void verifyValidAPIKey(Connection connection, String userEmail) throws I valueCount.incrementAndGet(); assertEquals("Rows imported", 1, importResponse.getRowCount()); - SaveRowsResponse saveResponse = queryApiHelper.insertRows(List.of(Map.of(LIST_VALUE, "value" + valueCount.get()))); + RowsResponse saveResponse = queryApiHelper.insertRows(List.of(Map.of(LIST_VALUE, "value" + valueCount.get()))); valueCount.incrementAndGet(); assertEquals("Rows inserted", 1, saveResponse.getRowsAffected()); diff --git a/src/org/labkey/test/tests/AuditLogTest.java b/src/org/labkey/test/tests/AuditLogTest.java index 31a2da9680..aa429db57f 100644 --- a/src/org/labkey/test/tests/AuditLogTest.java +++ b/src/org/labkey/test/tests/AuditLogTest.java @@ -24,7 +24,7 @@ import org.labkey.remoteapi.CommandException; import org.labkey.remoteapi.Connection; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; @@ -437,7 +437,7 @@ public void testDetailedQueryUpdateAuditLog() throws IOException, CommandExcepti Map rowMap = new HashMap<>(); rowMap.put("name", "Kia"); insertCmd.addRow(rowMap); - SaveRowsResponse resp1 = insertCmd.execute(cn, AUDIT_DETAILED_TEST_PROJECT); + RowsResponse resp1 = insertCmd.execute(cn, AUDIT_DETAILED_TEST_PROJECT); Map auditLog = getAuditLogRow(this, "Query update events", "Query Name", "Manufacturers"); assertEquals("Did not find expected audit log for summary log level", "1 row(s) were inserted.", auditLog.get("Comment")); diff --git a/src/org/labkey/test/tests/ContainerContextTest.java b/src/org/labkey/test/tests/ContainerContextTest.java index 1ff9b6eed6..5da18dc7ef 100644 --- a/src/org/labkey/test/tests/ContainerContextTest.java +++ b/src/org/labkey/test/tests/ContainerContextTest.java @@ -23,7 +23,7 @@ import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; @@ -612,7 +612,7 @@ private String insertEmissionTest(String workbookId, String suffix, int vehicleI rowMap.put("result", false); insertCmd.addRow(rowMap); - SaveRowsResponse response = insertCmd.execute(cn, getProjectName() + "/" + workbookId); + RowsResponse response = insertCmd.execute(cn, getProjectName() + "/" + workbookId); Map row = response.getRows().get(0); Integer rowId = (Integer)row.get("RowId"); return rowId.toString(); @@ -694,7 +694,7 @@ private int createRequiredRecords() throws IOException, CommandException Map rowMap = new HashMap<>(); rowMap.put("name", MANUFACTURER); insertCmd.addRow(rowMap); - SaveRowsResponse resp1 = insertCmd.execute(cn, getProjectName()); + RowsResponse resp1 = insertCmd.execute(cn, getProjectName()); //then create model InsertRowsCommand insertCmd2 = new InsertRowsCommand("vehicle", "models"); @@ -702,7 +702,7 @@ private int createRequiredRecords() throws IOException, CommandException rowMap.put("manufacturerId", resp1.getRows().get(0).get("rowid")); rowMap.put("name", MODEL); insertCmd2.addRow(rowMap); - SaveRowsResponse resp2 = insertCmd2.execute(cn, getProjectName()); + RowsResponse resp2 = insertCmd2.execute(cn, getProjectName()); InsertRowsCommand insertCmd3 = new InsertRowsCommand("vehicle", "vehicles"); rowMap = new HashMap<>(); @@ -713,7 +713,7 @@ private int createRequiredRecords() throws IOException, CommandException rowMap.put("LastService", new Date()); insertCmd3.addRow(rowMap); - SaveRowsResponse response = insertCmd3.execute(cn, getProjectName()); + RowsResponse response = insertCmd3.execute(cn, getProjectName()); Map row = response.getRows().get(0); return (Integer)row.get("RowId"); diff --git a/src/org/labkey/test/tests/DomainDesignerTest.java b/src/org/labkey/test/tests/DomainDesignerTest.java index 8e4cd16241..28f09fcc25 100644 --- a/src/org/labkey/test/tests/DomainDesignerTest.java +++ b/src/org/labkey/test/tests/DomainDesignerTest.java @@ -20,7 +20,7 @@ import org.labkey.remoteapi.domain.GetDomainDetailsCommand; import org.labkey.remoteapi.domain.PropertyDescriptor; import org.labkey.remoteapi.query.Filter; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.serverapi.collections.ArrayListMap; import org.labkey.test.BaseWebDriverTest; @@ -144,7 +144,7 @@ public void testListNumericFormatting() throws Exception dgen.addCustomRow(Map.of("Number", 3, "integerField", 123456789, "decimalField", 12345.678)); dgen.addCustomRow(Map.of("Number", 4, "integerField", 98765432, "decimalField", 1234.56789)); dgen.addCustomRow(Map.of("Number", 5, "integerField", 4, "decimalField", 5.654)); - SaveRowsResponse response = dgen.insertRows(createDefaultConnection(), dgen.getRows()); + RowsResponse response = dgen.insertRows(createDefaultConnection(), dgen.getRows()); goToProjectHome(); clickAndWait(Locator.linkWithText(listName)); diff --git a/src/org/labkey/test/tests/ExternalSchemaTest.java b/src/org/labkey/test/tests/ExternalSchemaTest.java index 1c5bd311cc..5b687f6e52 100644 --- a/src/org/labkey/test/tests/ExternalSchemaTest.java +++ b/src/org/labkey/test/tests/ExternalSchemaTest.java @@ -28,7 +28,7 @@ import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; @@ -305,7 +305,7 @@ void doTestUneditable() try { - SaveRowsResponse resp = cmd.execute(cn, PROJECT_NAME); + RowsResponse resp = cmd.execute(cn, PROJECT_NAME); fail("Expected to throw CommandException"); } catch (CommandException ex) @@ -403,7 +403,7 @@ int[] insertViaJavaApi(String containerPath, Connection cn, Row... rows) throws for (Row row : rows) cmd.addRow(row.toMap()); - SaveRowsResponse resp = cmd.execute(cn, containerPath); + RowsResponse resp = cmd.execute(cn, containerPath); assertEquals("Expected to insert " + rows.length + " rows", rows.length, resp.getRowsAffected().intValue()); int[] pks = new int[rows.length]; @@ -449,7 +449,7 @@ Row[] updateViaJavaApi(String containerPath, Connection cn, Row... rows) throws UpdateRowsCommand cmd = new UpdateRowsCommand(USER_SCHEMA_NAME, TABLE_NAME); for (Row row : rows) cmd.addRow(row.toMap()); - SaveRowsResponse resp = cmd.execute(cn, containerPath); + RowsResponse resp = cmd.execute(cn, containerPath); assertEquals("Expected to update " + rows.length + " rows", rows.length, resp.getRowsAffected().intValue()); Row[] updated = new Row[rows.length]; @@ -491,7 +491,7 @@ void deleteViaJavaApi(String containerPath, Connection cn, int... pks) throws IO for (Integer pk : pks) cmd.addRow(Collections.singletonMap("RowId", pk)); - SaveRowsResponse resp = cmd.execute(cn, containerPath); + RowsResponse resp = cmd.execute(cn, containerPath); assertEquals("Expected to delete " + pks.length + " rows", pks.length, resp.getRowsAffected().intValue()); SelectRowsCommand selectCmd = new SelectRowsCommand(USER_SCHEMA_NAME, TABLE_NAME); diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index 0294efb2b5..23b6554135 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -36,7 +36,7 @@ import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.SaveRowsApiResponse; import org.labkey.remoteapi.query.BaseRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; @@ -221,7 +221,7 @@ protected void doCRUDtTest() throws Exception rowMap.put("GooAmount", 4.2); rowMap.put("Crazy", true); insertCmd.addRow(rowMap); - SaveRowsResponse saveResp = insertCmd.execute(cn, PROJECT_NAME); + RowsResponse saveResp = insertCmd.execute(cn, PROJECT_NAME); assertEquals(1, saveResp.getRowsAffected().intValue()); //get new key value @@ -563,7 +563,7 @@ public void testImpersonateUser() throws Exception Map rowMap = new HashMap<>(); rowMap.put("FirstName", "inserted by impersonated user"); insertCmd.addRow(rowMap); - SaveRowsResponse saveResp = insertCmd.execute(cn, PROJECT_NAME); + RowsResponse saveResp = insertCmd.execute(cn, PROJECT_NAME); assertEquals(1, saveResp.getRowsAffected().intValue()); // stop impersonation diff --git a/src/org/labkey/test/tests/SampleTypeLimitsTest.java b/src/org/labkey/test/tests/SampleTypeLimitsTest.java index e3f05f2a23..b05859a2e7 100644 --- a/src/org/labkey/test/tests/SampleTypeLimitsTest.java +++ b/src/org/labkey/test/tests/SampleTypeLimitsTest.java @@ -9,7 +9,7 @@ import org.labkey.remoteapi.experiment.LineageNode; import org.labkey.remoteapi.experiment.LineageResponse; import org.labkey.remoteapi.query.Filter; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; @@ -85,8 +85,8 @@ private void doSetup() dgen.addDataSupplier("label", () -> TestDataGenerator.randomString(10, null, ALPHANUMERIC_STRING)) .withGeneratedRows(10000); dgen.createDomain(createDefaultConnection(), SAMPLE_TYPE_DOMAIN_KIND); - SaveRowsResponse saveRowsResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); - log("Successfully inserted " + saveRowsResponse.getRowsAffected()); + RowsResponse rowsResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); + log("Successfully inserted " + rowsResponse.getRowsAffected()); log("Waiting for the sample data to get generated"); goToProjectHome(); @@ -237,7 +237,7 @@ public void testInsertLargeLineageGraph() throws IOException, CommandException dgen.setAlphaNumericStr(true); dgen.createDomain(createDefaultConnection(), SAMPLE_TYPE_DOMAIN_KIND); Map indexRow = Map.of("name", "seed", "data", TestDataGenerator.randomInt(3, 2000), "testIndex", 0); // create the first seed in the lineage - SaveRowsResponse seedInsert = dgen.insertRows(createDefaultConnection(), List.of(indexRow)); + RowsResponse seedInsert = dgen.insertRows(createDefaultConnection(), List.of(indexRow)); SelectRowsResponse seedSelect = dgen.getRowsFromServer(createDefaultConnection(), List.of("lsid", "name", "parent", "data", "testIndex")); diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index a7fa057a6c..6fd2bf19d9 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -8,7 +8,7 @@ import org.labkey.remoteapi.experiment.LineageNode; import org.labkey.remoteapi.experiment.LineageResponse; import org.labkey.remoteapi.query.ContainerFilter; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; @@ -121,12 +121,12 @@ public void testLineageWithImplicitParentColumn() throws IOException, CommandExc dgen.addCustomRow(Map.of("name", "H", "data", 14, "stringData", TestDataGenerator.randomString(15), "MaterialInputs/implicitParentage", "A,B,C")); dgen.addCustomRow(Map.of("name", "I", "data", 12, "stringData", TestDataGenerator.randomString(15), "MaterialInputs/implicitParentage", "B,G")); - SaveRowsResponse saveRowsResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); + RowsResponse rowsResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); // get row 'B' after insert - Map rowB = saveRowsResponse.getRows().stream().filter((a)-> a.get("name").equals("B")) + Map rowB = rowsResponse.getRows().stream().filter((a)-> a.get("name").equals("B")) .findFirst().orElse(null); - Map rowH = saveRowsResponse.getRows().stream().filter((a)-> a.get("name").equals("H")) + Map rowH = rowsResponse.getRows().stream().filter((a)-> a.get("name").equals("H")) .findFirst().orElse(null); refresh(); diff --git a/src/org/labkey/test/tests/SampleTypeRemoteAPITest.java b/src/org/labkey/test/tests/SampleTypeRemoteAPITest.java index 9ca537308a..c7b51cd453 100644 --- a/src/org/labkey/test/tests/SampleTypeRemoteAPITest.java +++ b/src/org/labkey/test/tests/SampleTypeRemoteAPITest.java @@ -29,7 +29,7 @@ import org.labkey.remoteapi.assay.SaveAssayBatchCommand; import org.labkey.remoteapi.assay.SaveAssayBatchResponse; import org.labkey.remoteapi.domain.PropertyDescriptor; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; @@ -230,7 +230,7 @@ public void updateMissingValueSampleData() throws IOException, CommandException dgen.addCustomRow(Map.of("name", "G","mvStringData", "ValidValue", "volume", 17.5)); dgen.addCustomRow(Map.of("name", "H","mvStringData", "ActualData", "volume", 17.5)); - SaveRowsResponse insertResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); + RowsResponse insertResponse = dgen.insertRows(createDefaultConnection(), dgen.getRows()); refresh(); DataRegionTable sampleTypeList = DataRegionTable.DataRegion(getDriver()).withName(SAMPLE_TYPE_DATA_REGION_NAME).waitFor(); @@ -251,7 +251,7 @@ public void updateMissingValueSampleData() throws IOException, CommandException rowD.put("mvstringdatamvindicator", null); rowD.put("mvStringData", "updatedValue"); - SaveRowsResponse updateResponse = dgen.updateRows(createDefaultConnection(), Arrays.asList(rowD, rowE)); + RowsResponse updateResponse = dgen.updateRows(createDefaultConnection(), Arrays.asList(rowD, rowE)); // get a look at the result refresh(); diff --git a/src/org/labkey/test/tests/ScriptValidationTest.java b/src/org/labkey/test/tests/ScriptValidationTest.java index 105bc59a67..cb5e589d9b 100644 --- a/src/org/labkey/test/tests/ScriptValidationTest.java +++ b/src/org/labkey/test/tests/ScriptValidationTest.java @@ -30,7 +30,7 @@ import org.labkey.remoteapi.SimplePostCommand; import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; @@ -539,7 +539,7 @@ private List insertColors(List colors, Map results = new ArrayList<>(); @@ -564,7 +564,7 @@ private List updateColors(List colors, Map results = new ArrayList<>(); diff --git a/src/org/labkey/test/tests/SimpleModuleTest.java b/src/org/labkey/test/tests/SimpleModuleTest.java index 6b55b56fa7..202d2cf7c7 100644 --- a/src/org/labkey/test/tests/SimpleModuleTest.java +++ b/src/org/labkey/test/tests/SimpleModuleTest.java @@ -32,7 +32,7 @@ import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.Row; import org.labkey.remoteapi.query.RowMap; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; @@ -372,7 +372,7 @@ private void doTestColumnValidators() throws Exception Map rowMapM = new HashMap<>(); rowMapM.put("Name", "TestManufacturer"); insertCmdM.addRow(rowMapM); - SaveRowsResponse respM = insertCmdM.execute(createDefaultConnection(), getProjectName()); + RowsResponse respM = insertCmdM.execute(createDefaultConnection(), getProjectName()); Object manufacturerId = respM.getRows().get(0).get("RowId"); //This table has one validator defined in the schema XML and one in query XML. First do insert that should fail schema validator: @@ -400,7 +400,7 @@ private void doTestColumnValidators() throws Exception rowMap.put("ManufacturerId", manufacturerId); rowMap.put("InitialReleaseYear", 2000); insertCmd.addRow(rowMap); - SaveRowsResponse resp = insertCmd.execute(createDefaultConnection(), getProjectName()); + RowsResponse resp = insertCmd.execute(createDefaultConnection(), getProjectName()); Object rowId = resp.getRows().get(0).get("RowId"); //now try to update it: @@ -494,7 +494,7 @@ private void doTestSchemas() throws Exception Maps.of("Name", "Toyota"), Maps.of("Name", "Honda") )); - SaveRowsResponse insertResp = insertCmd.execute(cn, getProjectName()); + RowsResponse insertResp = insertCmd.execute(cn, getProjectName()); assertEquals("Expected to insert 3 rows.", 3, insertResp.getRowsAffected().intValue()); Integer fordId = null; @@ -752,7 +752,7 @@ else if (name.equalsIgnoreCase("F150")) } log("** Updating vehicles..."); - SaveRowsResponse updateRows = updateCmd.execute(cn, getProjectName()); + RowsResponse updateRows = updateCmd.execute(cn, getProjectName()); assertEquals("Expected to update 1 row.", 1, updateRows.getRowsAffected().intValue()); assertEquals(4, ((Number) (updateRows.getRows().get(0).get("Milage"))).intValue()); diff --git a/src/org/labkey/test/tests/TriggerScriptTest.java b/src/org/labkey/test/tests/TriggerScriptTest.java index cb8eacdf7b..0fc7599c84 100644 --- a/src/org/labkey/test/tests/TriggerScriptTest.java +++ b/src/org/labkey/test/tests/TriggerScriptTest.java @@ -26,7 +26,7 @@ import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.BaseRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; @@ -314,7 +314,7 @@ public void testListAPITriggerTypeConversion() throws Exception // to do the conversion. People.js should strip the "RemoveMe" prefix from Age and FavoriteDateTime InsertRowsCommand insCmd = new InsertRowsCommand(LIST_SCHEMA, PEOPLE_LIST_NAME); insCmd.addRow(Map.of("Name", "Jimbo", "Age", "RemoveMe25", "FavoriteDateTime", "RemoveMe2025-06-11 11:42", "Crazy", "true")); - SaveRowsResponse insResp = insCmd.execute(cn, getProjectName()); + RowsResponse insResp = insCmd.execute(cn, getProjectName()); List> insertedRows = insResp.getRows(); Assert.assertEquals(1, insertedRows.size()); @@ -327,7 +327,7 @@ public void testListAPITriggerTypeConversion() throws Exception UpdateRowsCommand upCmd = new UpdateRowsCommand(LIST_SCHEMA, PEOPLE_LIST_NAME); insertedRow.put("Age", "RemoveMe26"); upCmd.addRow(insertedRow); - SaveRowsResponse upResp = upCmd.execute(cn, getProjectName()); + RowsResponse upResp = upCmd.execute(cn, getProjectName()); List> updatedRows = upResp.getRows(); Assert.assertEquals(1, updatedRows.size()); @@ -352,7 +352,7 @@ public void testListAPITriggers() throws Exception //Check After Insert Event InsertRowsCommand insCmd = new InsertRowsCommand(LIST_SCHEMA, LIST_NAME); - SaveRowsResponse resp; + RowsResponse resp; insCmd.addRow(row1.toMap()); //can add multiple rows to insert many at once insCmd.addRow(row2.toMap()); @@ -581,7 +581,7 @@ private void doAPITriggerTest(String schemaName, String queryName, String keyCol insCmd.addRow(row2); insCmd.addRow(row3); - SaveRowsResponse resp = insCmd.execute(cn, getProjectName()); + RowsResponse resp = insCmd.execute(cn, getProjectName()); row2 = resp.getRows().get(0); Assert.assertEquals("API BeforeInsert", row2.get(COUNTRY_FIELD)); diff --git a/src/org/labkey/test/util/TestDataGenerator.java b/src/org/labkey/test/util/TestDataGenerator.java index dc57bc0ff7..b4af9779a6 100644 --- a/src/org/labkey/test/util/TestDataGenerator.java +++ b/src/org/labkey/test/util/TestDataGenerator.java @@ -30,7 +30,7 @@ import org.labkey.remoteapi.domain.DomainResponse; import org.labkey.remoteapi.domain.PropertyDescriptor; import org.labkey.remoteapi.query.Filter; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; import org.labkey.serverapi.reader.TabLoader; @@ -758,17 +758,17 @@ public CommandResponse deleteDomain(Connection cn) throws IOException, CommandEx return getQueryHelper(cn).deleteDomain(); } - public SaveRowsResponse insertRows() throws IOException, CommandException + public RowsResponse insertRows() throws IOException, CommandException { return insertRows(WebTestHelper.getRemoteApiConnection()); } - public SaveRowsResponse insertRows(Connection cn) throws IOException, CommandException + public RowsResponse insertRows(Connection cn) throws IOException, CommandException { return insertRows(cn, getRows()); } - public SaveRowsResponse insertRows(Connection cn, List> rows) throws IOException, CommandException + public RowsResponse insertRows(Connection cn, List> rows) throws IOException, CommandException { return getQueryHelper(cn).insertRows(rows); } @@ -794,7 +794,7 @@ public static List randomSelect(List allOptions, int selectCount) * @deprecated Use {@link QueryApiHelper} */ @Deprecated(since = "22.4") - public SaveRowsResponse updateRows(Connection cn, List> rows) throws IOException, CommandException + public RowsResponse updateRows(Connection cn, List> rows) throws IOException, CommandException { return getQueryHelper(cn).updateRows(rows); } @@ -839,7 +839,7 @@ public SelectRowsResponse getRowsFromServer(Connection cn, List intended * @deprecated Use {@link QueryApiHelper} */ @Deprecated(since = "22.4") - public SaveRowsResponse deleteRows(Connection cn, List> rowsToDelete) throws IOException, CommandException + public RowsResponse deleteRows(Connection cn, List> rowsToDelete) throws IOException, CommandException { return getQueryHelper(cn).deleteRows(rowsToDelete); } diff --git a/src/org/labkey/test/util/di/DataIntegrationHelper.java b/src/org/labkey/test/util/di/DataIntegrationHelper.java index 41a2d6980b..bf15cfa6d0 100644 --- a/src/org/labkey/test/util/di/DataIntegrationHelper.java +++ b/src/org/labkey/test/util/di/DataIntegrationHelper.java @@ -27,7 +27,7 @@ import org.labkey.remoteapi.di.UpdateTransformConfigurationResponse; import org.labkey.remoteapi.query.ExecuteSqlCommand; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; @@ -84,9 +84,9 @@ public SelectRowsResponse executeQuery(String folderPath, String schemaName, Str return exRsp; } - public SaveRowsResponse executeInsert(String folderPath, String schemaName, String tableName, Map rows) throws Exception + public RowsResponse executeInsert(String folderPath, String schemaName, String tableName, Map rows) throws Exception { - SaveRowsResponse response; + RowsResponse response; Connection cn = new Connection(_baseUrl, _username, _password); InsertRowsCommand insCmd = new InsertRowsCommand(schemaName, tableName); insCmd.addRow(rows); diff --git a/src/org/labkey/test/util/query/QueryApiHelper.java b/src/org/labkey/test/util/query/QueryApiHelper.java index 6f758249e5..c53a0ae7f9 100644 --- a/src/org/labkey/test/util/query/QueryApiHelper.java +++ b/src/org/labkey/test/util/query/QueryApiHelper.java @@ -13,7 +13,7 @@ import org.labkey.remoteapi.query.ImportDataResponse; import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.BaseRowsCommand; -import org.labkey.remoteapi.query.SaveRowsResponse; +import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.remoteapi.query.Sort; @@ -85,7 +85,7 @@ public SelectRowsResponse selectRows(List columns, @Nullable List> rows) throws IOException, CommandException + public RowsResponse insertRows(List> rows) throws IOException, CommandException { InsertRowsCommand insertRowsCommand = new InsertRowsCommand(_schema, _query); insertRowsCommand.setRows(rows); @@ -94,7 +94,7 @@ public SaveRowsResponse insertRows(List> rows) throws IOExce return insertRowsCommand.execute(_connection, _containerPath); } - public SaveRowsResponse updateRows(List> rows) throws IOException, CommandException + public RowsResponse updateRows(List> rows) throws IOException, CommandException { UpdateRowsCommand updateRowsCommand = new UpdateRowsCommand(_schema, _query); updateRowsCommand.setRows(rows); @@ -123,7 +123,7 @@ public ImportDataResponse importData(File file) throws IOException, CommandExcep * @param rowsToDelete Should include primary key(s) for the table * @return a list of the rows that were deleted */ - public SaveRowsResponse deleteRows(List> rowsToDelete) throws IOException, CommandException + public RowsResponse deleteRows(List> rowsToDelete) throws IOException, CommandException { DeleteRowsCommand cmd = new DeleteRowsCommand(_schema, _query); cmd.setRows(rowsToDelete); From c7dc4f6f77a861b99badafa126c99a1d8f0e8bbb Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 09:58:06 -0700 Subject: [PATCH 5/7] SaveRowsApi -> SaveRows --- src/org/labkey/test/tests/JavaClientApiTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index 23b6554135..f5742ffc7a 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -34,7 +34,7 @@ import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; import org.labkey.remoteapi.query.InsertRowsCommand; -import org.labkey.remoteapi.query.SaveRowsApiResponse; +import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.BaseRowsCommand; import org.labkey.remoteapi.query.RowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; @@ -43,9 +43,9 @@ import org.labkey.remoteapi.query.TruncateTableCommand; import org.labkey.remoteapi.query.TruncateTableResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; -import org.labkey.remoteapi.query.SaveRowsApiCommand; -import org.labkey.remoteapi.query.SaveRowsApiCommand.Command; -import org.labkey.remoteapi.query.SaveRowsApiCommand.CommandType; +import org.labkey.remoteapi.query.SaveRowsCommand; +import org.labkey.remoteapi.query.SaveRowsCommand.Command; +import org.labkey.remoteapi.query.SaveRowsCommand.CommandType; import org.labkey.remoteapi.security.AddGroupMembersCommand; import org.labkey.remoteapi.security.CreateGroupCommand; import org.labkey.remoteapi.security.CreateGroupResponse; @@ -662,7 +662,7 @@ public void testSaveRowsApiCommand() throws Exception insertCmd.execute(conn, SUB_FOLDER_PATH); } - SaveRowsApiCommand saveCmd = new SaveRowsApiCommand(); + SaveRowsCommand saveCmd = new SaveRowsCommand(); // Draft Ken Griffey Jr. saveCmd.addCommands(new Command(CommandType.Insert, schemaName, playersListName, List.of( @@ -702,7 +702,7 @@ public void testSaveRowsApiCommand() throws Exception // Act // Execute multiple query operations using a saveRows command - SaveRowsApiResponse response = saveCmd.execute(conn, PROJECT_NAME); + SaveRowsResponse response = saveCmd.execute(conn, PROJECT_NAME); // Assert assertEquals(200, response.getStatusCode()); From a1279dd405d6522e6f4f4829f0d1d3bfced1c0a1 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 10:26:10 -0700 Subject: [PATCH 6/7] Update usages --- .../labkey/test/tests/JavaClientApiTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index f5742ffc7a..14b9700619 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -674,9 +674,9 @@ public void testSaveRowsApiCommand() throws Exception Map.of("JerseyNumber", 19, "Team", "Seattle Mariners"), Map.of("JerseyNumber", 44, "Team", "New York Yankees") ); - Command command = new Command(CommandType.Update, schemaName, playersListName, rows) - .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) - .setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); + Command command = new Command(CommandType.Update, schemaName, playersListName, rows); + command.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); + command.setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); saveCmd.addCommands(command); // Alvin Davis retires @@ -687,17 +687,17 @@ public void testSaveRowsApiCommand() throws Exception Map.of("Team", "Dodgers", "City", "Los Angeles"), Map.of("Team", "Giants", "City", "San Francisco") ); - command = new Command(CommandType.Update, schemaName, teamsListName, rows) - .setContainerPath(SUB_FOLDER_PATH) - .setSkipReselectRows(true); + command = new Command(CommandType.Update, schemaName, teamsListName, rows); + command.setContainerPath(SUB_FOLDER_PATH); + command.setSkipReselectRows(true); saveCmd.addCommands(command); // Some teams are relegated to history rows = List.of(Map.of("Team", "Expos"), Map.of("Team", "Pilots")); - command = new Command(CommandType.Delete, schemaName, teamsListName, rows) - .setContainerPath(SUB_FOLDER_PATH) - .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) - .setAuditUserComment("Expos and Pilots no longer play ball"); + command = new Command(CommandType.Delete, schemaName, teamsListName, rows); + command.setContainerPath(SUB_FOLDER_PATH); + command.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); + command.setAuditUserComment("Expos and Pilots no longer play ball"); saveCmd.addCommands(command); // Act From 50b35e0bc2734296b860ef4b781db19e704afd29 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 17 Jul 2025 12:49:40 -0700 Subject: [PATCH 7/7] Test updates --- .../labkey/test/tests/JavaClientApiTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/org/labkey/test/tests/JavaClientApiTest.java b/src/org/labkey/test/tests/JavaClientApiTest.java index 14b9700619..f5742ffc7a 100644 --- a/src/org/labkey/test/tests/JavaClientApiTest.java +++ b/src/org/labkey/test/tests/JavaClientApiTest.java @@ -674,9 +674,9 @@ public void testSaveRowsApiCommand() throws Exception Map.of("JerseyNumber", 19, "Team", "Seattle Mariners"), Map.of("JerseyNumber", 44, "Team", "New York Yankees") ); - Command command = new Command(CommandType.Update, schemaName, playersListName, rows); - command.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); - command.setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); + Command command = new Command(CommandType.Update, schemaName, playersListName, rows) + .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) + .setAuditUserComment("Traded Jay Buhner for Ken Phelps on July 21, 1988"); saveCmd.addCommands(command); // Alvin Davis retires @@ -687,17 +687,17 @@ public void testSaveRowsApiCommand() throws Exception Map.of("Team", "Dodgers", "City", "Los Angeles"), Map.of("Team", "Giants", "City", "San Francisco") ); - command = new Command(CommandType.Update, schemaName, teamsListName, rows); - command.setContainerPath(SUB_FOLDER_PATH); - command.setSkipReselectRows(true); + command = new Command(CommandType.Update, schemaName, teamsListName, rows) + .setContainerPath(SUB_FOLDER_PATH) + .setSkipReselectRows(true); saveCmd.addCommands(command); // Some teams are relegated to history rows = List.of(Map.of("Team", "Expos"), Map.of("Team", "Pilots")); - command = new Command(CommandType.Delete, schemaName, teamsListName, rows); - command.setContainerPath(SUB_FOLDER_PATH); - command.setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED); - command.setAuditUserComment("Expos and Pilots no longer play ball"); + command = new Command(CommandType.Delete, schemaName, teamsListName, rows) + .setContainerPath(SUB_FOLDER_PATH) + .setAuditBehavior(BaseRowsCommand.AuditBehavior.DETAILED) + .setAuditUserComment("Expos and Pilots no longer play ball"); saveCmd.addCommands(command); // Act