public async Task SetupFixture()
        {
            _embeddedEventStore = new EmbeddedEventStoreFixture();
            await _embeddedEventStore.Initialize();

            _cleanup = new CompositeDisposable();
        }
        public async Task SetupFixture()
        {
            _embeddedEventStore = new EmbeddedEventStoreFixture();
            await _embeddedEventStore.Initialize();

            await Task.Delay(5000);
        }
        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);
        }