public async Task ShouldCreateAndResumeConnection() { var subject = Guid.NewGuid().ToString(); var repository = EventStoreRepository.Create(new EventStoreRepositoryConfiguration()); _cleanup.Add(repository); await repository.Connect(TimeSpan.FromSeconds(10)); //wait for EventStore to setup user accounts await Task.Delay(500); var counter = 0; var subscription = repository.Observe(subject) .Subscribe(ev => { counter++; }); _cleanup.Add(subscription); await repository.SavePendingEvents(subject, -1, new[] { new CcyPairChanged("Harmony", subject, true, 1.32, 1.34) }); await Task.Delay(200); await _embeddedEventStore.Dispose(); _embeddedEventStore = new EmbeddedEventStoreFixture(); await _embeddedEventStore.Initialize(); await Wait.Until(() => repository.IsConnected, TimeSpan.FromSeconds(5)); //wait for EventStore to setup user accounts await Task.Delay(500); await repository.SavePendingEvents(subject, -1, new[] { new CcyPairChanged("Harmony", subject, true, 1.32, 1.34) }); await Task.Delay(200); Assert.AreEqual(2, counter); }
public async Task ShouldSubscribeFromVersion() { var subject = Guid.NewGuid().ToString(); var repository = EventStoreRepository.Create(new EventStoreRepositoryConfiguration()); _cleanup.Add(repository); await repository.Connect(TimeSpan.FromSeconds(10)); //wait for EventStore to setup user accounts await Task.Delay(500); await repository.SavePendingEvents(subject, -1, new[] { new CcyPairChanged("Harmony", subject, true, 1.32, 1.34) }); await Task.Delay(200); await repository.SavePendingEvents(subject, 0, new[] { new CcyPairChanged("Harmony", subject, true, 1.32, 1.34) }); await Task.Delay(200); repository.Dispose(); repository = EventStoreRepository.Create(new EventStoreRepositoryConfiguration()); await repository.Connect(TimeSpan.FromSeconds(10)); //wait for EventStore to setup user accounts await Task.Delay(500); var counter = 0; var subscription = repository.Observe(subject, 1) .Subscribe(ev => { counter++; }); _cleanup.Add(subscription); await Task.Delay(200); Assert.AreEqual(1, counter); }
public async Task ShouldCatchUpStream() { var repository = EventStoreRepository.Create(new EventStoreRepositoryConfiguration()); await repository.Connect(TimeSpan.FromSeconds(10)); //wait for EventStore to setup user accounts await Task.Delay(500); await repository.SavePendingEvents("EUR/USD", -1, new[] { new CcyPairChanged("Harmony", "EUR/USD", true, 1.32, 1.34) }); await Task.Delay(200); await repository.SavePendingEvents("EUR/USD", 0, new[] { new CcyPairChanged("Harmony", "EUR/USD", true, 1.32, 1.34) }); await Task.Delay(200); repository.Dispose(); repository = EventStoreRepository.Create(new EventStoreRepositoryConfiguration()); await repository.Connect(TimeSpan.FromSeconds(10)); //wait for EventStore to setup user accounts await Task.Delay(500); var counter = 0; var subscription = repository.Observe("EUR/USD", rewindAfterDisconnection: true) .Subscribe(ev => { counter++; }); await Task.Delay(200); Assert.AreEqual(2, counter); subscription.Dispose(); repository.Dispose(); }