Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/org/labkey/test/WebDriverWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -1358,6 +1358,11 @@ public String getDisplayName()
return whoAmI().getDisplayName();
}

public int getCurrentUserId()
{
return whoAmI().getUserId().intValue();
}

public String getCurrentDateTimeFormatString()
{
return (String)executeScript("return LABKEY.container.formats.dateTimeFormat");
Expand Down
15 changes: 10 additions & 5 deletions src/org/labkey/test/util/AuditLogHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -171,24 +171,29 @@ public void checkAuditEventDiffCount(String containerPath, AuditEvent auditEvent
}
public void checkAuditEventDiffCount(String containerPath, AuditEvent auditEventName, List<Filter> filters, List<Integer> expectedDiffCounts) throws IOException, CommandException
{
Integer maxRows = expectedDiffCounts.size();
List<Map<String, Object>> events = getAuditLogsFromLKS(containerPath, auditEventName, List.of("InventoryUpdateType", "NewRecordMap"), filters, maxRows, ContainerFilter.CurrentAndSubfolders).getRows();
checkAuditEventDiffCount(containerPath, auditEventName, "NewRecordMap", filters, expectedDiffCounts);
}

public void checkAuditEventDiffCount(String containerPath, AuditEvent auditEventName, String eventDiffFieldName, List<Filter> filters, List<Integer> expectedDiffCounts) throws IOException, CommandException
{
Integer maxRows = filters == null || filters.isEmpty() ? expectedDiffCounts.size() : null;
List<Map<String, Object>> events = getAuditLogsFromLKS(containerPath, auditEventName, List.of("InventoryUpdateType", eventDiffFieldName), filters, maxRows, ContainerFilter.CurrentAndSubfolders).getRows();
assertEquals("Unexpected number of events", expectedDiffCounts.size(), events.size());
for (int i = 0; i < expectedDiffCounts.size(); i++)
{
Map<String, Object> event = events.get(i);
boolean isInventoryUpdateType = event.get("InventoryUpdateType") != null;
int expectedDiffCount = isInventoryUpdateType ? 0 : expectedDiffCounts.get(i);
String dataChangesStr = (String) event.get("NewRecordMap");
String dataChangesStr = (String) event.get(eventDiffFieldName);
String[] dataChanges = dataChangesStr != null ? dataChangesStr.split("&") : new String[0];

// filter out SampleStateLabel as that is not a change, it is added for display purposes
dataChanges = Stream.of(dataChanges).filter(s -> !s.toLowerCase().startsWith("samplestatelabel=")).toArray(String[]::new);
// filter out RowId as that is not a change, it is added for display purposes
dataChanges = Stream.of(dataChanges).filter(s -> !s.toLowerCase().startsWith("rowid=")).toArray(String[]::new);

TestLogger.log("Audit record data changes diff count check: " + dataChangesStr);
assertEquals("Audit record data changes did not include the expected number of diffs, expected " + expectedDiffCount + " but was " + dataChanges.length + ": " + dataChangesStr,
TestLogger.log("Audit record data changes diff count check (" + eventDiffFieldName + "): " + dataChangesStr);
assertEquals("Audit record data changes did not include the expected number of diffs in " + eventDiffFieldName + ", expected " + expectedDiffCount + " but was " + dataChanges.length + ": " + dataChangesStr,
expectedDiffCount, dataChanges.length);
}
}
Expand Down