package com.codecademy.eventhub.index;
import com.google.inject.Injector;
import com.codecademy.eventhub.integration.GuiceTestCase;
import org.junit.Assert;
import org.junit.Test;
import javax.inject.Provider;
import java.util.Properties;
public class DatedEventIndexTest extends GuiceTestCase {
@Test
public void testAll() throws Exception {
Provider<DatedEventIndex> datedEventIndexProvider = getDatedEventIndexProvider();
DatedEventIndex datedEventIndex = datedEventIndexProvider.get();
String[] dates = new String[] { "20130101", "20130102", "20131111", "20131201" };
datedEventIndex.addEvent(1, dates[0]);
datedEventIndex.addEvent(2, dates[0]);
datedEventIndex.addEvent(3, dates[1]);
datedEventIndex.addEvent(4, dates[1]);
datedEventIndex.addEvent(5, dates[1]);
datedEventIndex.addEvent(15, dates[1]);
datedEventIndex.addEvent(16, dates[2]);
datedEventIndex.addEvent(17, dates[2]);
datedEventIndex.addEvent(18, dates[3]);
datedEventIndex.addEvent(19, dates[3]);
Assert.assertEquals(3, datedEventIndex.findFirstEventIdOnDate(1, 1));
Assert.assertEquals(3, datedEventIndex.findFirstEventIdOnDate(2, 1));
Assert.assertEquals(16, datedEventIndex.findFirstEventIdOnDate(2, 2));
datedEventIndex.close();
datedEventIndex = datedEventIndexProvider.get();
Assert.assertEquals(3, datedEventIndex.findFirstEventIdOnDate(1, 1));
Assert.assertEquals(3, datedEventIndex.findFirstEventIdOnDate(2, 1));
Assert.assertEquals(16, datedEventIndex.findFirstEventIdOnDate(2, 2));
}
private Provider<DatedEventIndex> getDatedEventIndexProvider() {
Properties prop = new Properties();
prop.put("eventhub.directory", getTempDirectory());
Injector injector = createInjectorFor(prop, new DatedEventIndexModule());
return injector.getProvider(DatedEventIndex.class);
}
}