Search in sources :

Example 51 with Event

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()));
}
Also used : EventQueryDefinition(org.ff4j.audit.EventQueryDefinition) Event(org.ff4j.audit.Event) Test(org.junit.Test)

Example 52 with Event

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());
}
Also used : EventSeries(org.ff4j.audit.EventSeries) Event(org.ff4j.audit.Event) Test(org.junit.Test)

Example 53 with Event

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);
}
Also used : Event(org.ff4j.audit.Event) Test(org.junit.Test)

Example 54 with Event

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());
}
Also used : EventWorker(org.ff4j.audit.EventWorker) InMemoryEventRepository(org.ff4j.audit.repository.InMemoryEventRepository) Event(org.ff4j.audit.Event) InMemoryEventRepository(org.ff4j.audit.repository.InMemoryEventRepository) EventRepository(org.ff4j.audit.repository.EventRepository) Test(org.junit.Test)

Example 55 with Event

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;
}
Also used : Jedis(redis.clients.jedis.Jedis) Event(org.ff4j.audit.Event)

Aggregations

Event (org.ff4j.audit.Event)56 Test (org.junit.Test)32 EventQueryDefinition (org.ff4j.audit.EventQueryDefinition)22 MutableHitCount (org.ff4j.audit.MutableHitCount)15 EventSeries (org.ff4j.audit.EventSeries)8 TimeSeriesChart (org.ff4j.audit.chart.TimeSeriesChart)8 JestResult (io.searchbox.client.JestResult)6 HashMap (java.util.HashMap)5 EventRepository (org.ff4j.audit.repository.EventRepository)4 InMemoryEventRepository (org.ff4j.audit.repository.InMemoryEventRepository)4 Date (java.util.Date)2 TreeMap (java.util.TreeMap)2 EventPublisher (org.ff4j.audit.EventPublisher)2 EventWorker (org.ff4j.audit.EventWorker)2 BarChart (org.ff4j.audit.chart.BarChart)2 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 FF4j (org.ff4j.FF4j)1 Serie (org.ff4j.audit.chart.Serie)1 MongoEventMapper (org.ff4j.mongo.mapper.MongoEventMapper)1