package org.jai.flume.agent;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.apache.flume.Event;
import org.apache.flume.EventDeliveryException;
import org.apache.flume.agent.embedded.EmbeddedAgent;
import org.jai.hbase.HbaseService;
import org.jai.search.analytics.GenerateSearchAnalyticsDataService;
import org.jai.search.test.AbstractSearchJUnit4SpringContextTests;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
public class FlumeAgentServiceTest extends
AbstractSearchJUnit4SpringContextTests {
@Autowired
private GenerateSearchAnalyticsDataService generateSearchAnalyticsDataService;
@Autowired
private FlumeAgentService flumeAgentService;
@Autowired
private HbaseService hbaseService;
private int searchEventsCount = 100;
@Test
public void testGetFlumeAgent() throws EventDeliveryException,
InterruptedException {
EmbeddedAgent flumeAgent = flumeAgentService.getFlumeAgent();
List<Event> searchEvents = generateSearchAnalyticsDataService
.getSearchEvents(searchEventsCount);
for (Event event : searchEvents) {
flumeAgent.put(event);
}
// wait until sink process everything. sleep 10 sec.
Thread.sleep(10000);
}
@Test
public void testProcessEvents() throws EventDeliveryException,
InterruptedException {
hbaseService.removeAll();
generateSearchAnalyticsDataService
.generateAndPushSearchEvents(searchEventsCount);;
// wait until sink process everything. sleep 10 sec.
Thread.sleep(10000);
assertEquals(searchEventsCount, hbaseService.getTotalSearchClicksCount());
}
}