@Override public String debugDump() { return debugDump(0); }
private List<AuditEventRecord> getChangeTrail(String targetOid, String finalEventIdentifier) throws ObjectNotFoundException { AuditEventRecord finalEvent = findEvent(finalEventIdentifier); if (finalEvent == null) { throw new ObjectNotFoundException("Audit event ID "+finalEventIdentifier+" was not found"); } if (LOGGER.isTraceEnabled()) { LOGGER.trace("Final event:\n{}", finalEvent.debugDump(1)); } List<AuditEventRecord> changeTrail = getChangeTrail(targetOid, XmlTypeConverter.createXMLGregorianCalendar(finalEvent.getTimestamp())); // The search may have returned more events that we want to, e.g. if two // events happened in the same millisecond. Iterator<AuditEventRecord> iterator = changeTrail.iterator(); boolean foundFinalEvent = false; while (iterator.hasNext()) { AuditEventRecord event = iterator.next(); if (foundFinalEvent) { iterator.remove(); } else if (finalEventIdentifier.equals(event.getEventIdentifier())) { foundFinalEvent = true; } } return changeTrail; }
@Test public void test110AuditSecond() throws Exception { LOGGER.info("===[ test110AuditSecond ]==="); // WHEN AuditEventRecord record = new AuditEventRecord(); record.addPropertyValue("prop", "val"); LOGGER.info("Adding audit record {}", record); auditService.audit(record, new SimpleTaskAdapter()); // THEN System.out.println("Record written:\n" + record.debugDump()); System.out.println("Repo ID: " + record.getRepoId()); AuditEventRecord loaded = getAuditEventRecord(2, 1); System.out.println("Record loaded:\n" + loaded.debugDump()); System.out.println("Repo ID: " + loaded.getRepoId()); assertEquals("Wrong # of properties", 1, loaded.getProperties().size()); assertEquals("Wrong prop values", new HashSet<>(Collections.singletonList("val")), loaded.getPropertyValues("prop")); assertEquals("Wrong # of references", 0, loaded.getReferences().size()); }
System.out.println("Record written:\n" + record.debugDump()); System.out.println("Repo ID: " + record.getRepoId()); AuditEventRecord loaded = getAuditEventRecord(1, 0); System.out.println("Record loaded:\n" + loaded.debugDump()); System.out.println("Repo ID: " + loaded.getRepoId()); assertEquals("Wrong # of properties", 3, loaded.getProperties().size());