package be.swsb.fiazard.common.eventsourcing;
import be.swsb.fiazard.common.mongo.MongoDBRule;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class EventStoreIntegrationTest {
private static final String ORDER_ID = "15";
@Rule
public MongoDBRule mongoDBRule = MongoDBRule.create();
private EventStore eventStore;
@Before
public void setUp() {
eventStore = new EventStore(mongoDBRule.getDB());
}
@Test
public void fieldsAnnotatedWithJsonIgnoreAreNotPersisted() {
TrialEvent event = new TrialEvent();
eventStore.store(event);
TrialEvent foundEvent = (TrialEvent) eventStore.findAll().get(0);
assertThat(foundEvent.getIgnoredFieldBecauseOfAnnotationOnField()).isNull();
}
@Test
public void fieldsWhoseGetterMethodIsAnnotatedWithJsonIgnoreAreNotPersisted() {
TrialEvent event = new TrialEvent();
eventStore.store(event);
TrialEvent foundEvent = (TrialEvent) eventStore.findAll().get(0);
assertThat(foundEvent.getIgnoredFieldBecauseOfAnnotationOnGetter()).isNull();
}
@Test
public void fieldsWithGetterArePersisted() {
TrialEvent event = new TrialEvent();
eventStore.store(event);
TrialEvent foundEvent = (TrialEvent) eventStore.findAll().get(0);
assertThat(foundEvent.getPersistedField()).isNotNull();
assertThat(foundEvent.getPersistedField()).isEqualTo(event.getPersistedField());
}
@Test
public void fieldsWithoutGetterAreNotPersisted() {
TrialEvent event = new TrialEvent();
eventStore.store(event);
TrialEvent foundEvent = (TrialEvent) eventStore.findAll().get(0);
assertThat(foundEvent.ignoredFieldBecauseOfMissingGetter).isNull();
}
@Test
public void annotatedfieldWithoutGetterIsPersisted() {
TrialEvent event = new TrialEvent();
eventStore.store(event);
TrialEvent foundEvent = (TrialEvent) eventStore.findAll().get(0);
assertThat(foundEvent.fieldAnnotatedWithJsonPropertyWithoutGetter).isNotNull();
assertThat(foundEvent.fieldAnnotatedWithJsonPropertyWithoutGetter).isEqualTo(event.fieldAnnotatedWithJsonPropertyWithoutGetter);
}
}