use of org.ff4j.audit.Event in project ff4j by ff4j.
the class AbstractEventRepositoryTest method testPurgeEvents.
/**
* TDD.
*/
@Test
public void testPurgeEvents() throws InterruptedException {
// Given, 2 events in the repo
long topStart = System.currentTimeMillis();
Event evtAudit = new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CREATE);
evtAudit.setUuid("1234-5678-9012-3456");
Event evtFeatureUsage = new Event(SOURCE_JAVA, TARGET_FEATURE, "f2", ACTION_CHECK_OK);
evtFeatureUsage.setUuid("1234-5678-9012-3457");
repo.saveEvent(evtAudit);
repo.saveEvent(evtFeatureUsage);
Thread.sleep(100);
Assert.assertNotNull(repo.getEventByUUID(evtAudit.getUuid(), System.currentTimeMillis()));
Assert.assertNotNull(repo.getEventByUUID(evtFeatureUsage.getUuid(), System.currentTimeMillis()));
// When
EventQueryDefinition testQuery = new EventQueryDefinition(topStart - 100, System.currentTimeMillis());
repo.purgeFeatureUsage(testQuery);
Assert.assertNull(repo.getEventByUUID(evtFeatureUsage.getUuid(), System.currentTimeMillis()));
Assert.assertTrue(repo.searchFeatureUsageEvents(testQuery).isEmpty());
// Then
EventQueryDefinition testQuery2 = new EventQueryDefinition(topStart - 100, System.currentTimeMillis());
repo.purgeAuditTrail(testQuery2);
Assert.assertNull(repo.getEventByUUID(evtAudit.getUuid(), System.currentTimeMillis()));
}
use of org.ff4j.audit.Event in project ff4j by ff4j.
the class AbstractEventRepositoryTest method testLimitEventSeries.
/**
* TDD.
*/
@Test
public void testLimitEventSeries() throws InterruptedException {
EventSeries es = new EventSeries(5);
for (int i = 0; i < 10; i++) {
Thread.sleep(10);
es.add(new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CREATE));
}
Assert.assertEquals(5, es.size());
}
use of org.ff4j.audit.Event in project ff4j by ff4j.
the class AbstractEventRepositoryTest method testGetEventByUID.
/**
* TDD.
*/
@Test
public void testGetEventByUID() throws InterruptedException {
// Given
String dummyId = "1234-5678-9012-3456";
Event evt1 = new Event(SOURCE_JAVA, TARGET_FEATURE, "f1", ACTION_CREATE);
evt1.setUuid(dummyId);
// When
repo.saveEvent(evt1);
// Let the store to be updated
Thread.sleep(100);
// Then
Event evt = repo.getEventByUUID(dummyId, System.currentTimeMillis());
Assert.assertNotNull(evt);
}
use of org.ff4j.audit.Event in project ff4j by ff4j.
the class EventWorkerTest method testEventWorker.
@Test
public void testEventWorker() {
// Given
EventRepository er = new InMemoryEventRepository();
Event evt = new Event(SOURCE_JAVA, TARGET_FEATURE, "F1", ACTION_CHECK_OFF);
EventWorker ew = new EventWorker(evt, er);
// When
ew.setName("NAME1");
// Then
Assert.assertEquals("NAME1", ew.getName());
}
use of org.ff4j.audit.Event in project ff4j by ff4j.
the class EventRepositoryRedis method getEventByUUID.
/**
* {@inheritDoc}
*/
@Override
public Event getEventByUUID(String uuid, Long timestamp) {
Util.assertHasLength(new String[] { uuid });
Event redisEvent = null;
Jedis jedis = null;
try {
jedis = getJedis();
String hashKey = getHashKey(timestamp, null);
// Check for the event within 100ms time range passed, hoping there won't be more than 10 for this.
Set<String> events = jedis.zrangeByScore(hashKey, timestamp - 100L, timestamp + 100L, 0, 10);
// Loop through the result set and match the timestamp passed in.
for (String evt : events) {
Event event = marshallEvent(evt);
if (timestamp == event.getTimestamp()) {
return event;
}
}
} finally {
if (jedis != null) {
jedis.close();
}
}
return redisEvent;
}
Aggregations