Skip to content

Commit 26dbc53

Browse files
authored
MoveToContainerDialog verifyAuditEvents to use Runnable to wait for next transactionId before doing audit diff checks (#2606)
- AuditLogHelper.getLastTransactionId try/catch - AuditLogHelper for doAndWaitForTransaction - Add capital to NON_LATIN_STRING (for BiologicsReportTest export chart pdf scenario)
1 parent a12c342 commit 26dbc53

2 files changed

Lines changed: 35 additions & 4 deletions

File tree

src/org/labkey/test/util/AuditLogHelper.java

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import static java.lang.Integer.parseInt;
3434
import static org.junit.Assert.assertEquals;
3535
import static org.junit.Assert.fail;
36+
import static org.labkey.test.WebDriverWrapper.WAIT_FOR_JAVASCRIPT;
37+
import static org.labkey.test.WebDriverWrapper.waitFor;
3638

3739
public class AuditLogHelper
3840
{
@@ -232,10 +234,39 @@ public void checkAuditEventDiffCount(String containerPath, AuditEvent auditEvent
232234
}
233235
}
234236

235-
public Integer getLastTransactionId(String containerPath, AuditEvent auditEventName) throws IOException, CommandException
237+
public Integer getLastTransactionId(String containerPath, AuditEvent auditEventName)
236238
{
237-
List<Map<String, Object>> events = getAuditLogsFromLKS(containerPath, auditEventName, List.of("TransactionId"), Collections.emptyList(), 1, ContainerFilter.CurrentAndSubfolders).getRows();
238-
return events.size() == 1 ? (Integer) events.get(0).get("TransactionId") : null;
239+
try
240+
{
241+
List<Map<String, Object>> events = getAuditLogsFromLKS(containerPath, auditEventName, List.of("TransactionId"), Collections.emptyList(), 1, ContainerFilter.CurrentAndSubfolders).getRows();
242+
return events.size() == 1 ? (Integer) events.get(0).get("TransactionId") : null;
243+
}
244+
catch (Exception e)
245+
{
246+
throw new RuntimeException(e);
247+
}
248+
}
249+
250+
public Integer doAndWaitForTransaction(Runnable action, String containerPath, AuditEvent auditEventName)
251+
{
252+
int prevTransactionId;
253+
if (action != null)
254+
{
255+
prevTransactionId = Objects.requireNonNullElse(getLastTransactionId(containerPath, auditEventName), -1);
256+
action.run();
257+
}
258+
else
259+
{
260+
prevTransactionId = -1;
261+
}
262+
263+
return waitFor(() -> {
264+
Integer transactionId = getLastTransactionId(containerPath, auditEventName);
265+
if (transactionId != null && transactionId > prevTransactionId)
266+
return transactionId;
267+
else
268+
return null;
269+
}, "Error waiting for next transactionId in " + auditEventName, WAIT_FOR_JAVASCRIPT);
239270
}
240271

241272
/**

src/org/labkey/test/util/TestDataGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public class TestDataGenerator
7777
public static final char WIDE_PLACEHOLDER = '\u03A0'; // 'Π' - Wide character can't be picked from the string with 'charAt'
7878
public static final char REPEAT_PLACEHOLDER = '\u22EF'; // '⋯' - Used to indicate that the char will be repeated
7979
public static final char ALL_CHARS_PLACEHOLDER = '\u2211'; // '∑' - Used to indicate that all characters from the charset should be used
80-
public static final String NON_LATIN_STRING = "\u0438\uC548\u306F"; // "и안は"
80+
public static final String NON_LATIN_STRING = "\u0438\u0418\uC548\u306F"; // "иИ안は"
8181
// chose a Character random from this String
8282
public static final String CHARSET_STRING = "ABCDEFG01234abcdefvxyz~!@#$%^&*()-+=_{}[]|:;\"',.<>" + NON_LATIN_STRING + WIDE_PLACEHOLDER;
8383
public static final String ALPHANUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvxyz";

0 commit comments

Comments
 (0)