public async Task Persister_works_with_existing_sagas()
        {
            var legacySagaData = new NServiceBus.MongoDB.NServiceBusMongoDBLegacySagaData
            {
                Id = Guid.NewGuid(),
                OriginalMessageId         = Guid.NewGuid().ToString(),
                Originator                = "SomeOriginator",
                DocumentVersion           = 5,
                SomeCorrelationPropertyId = Guid.NewGuid(),
                SomeUpdatableSagaData     = GetHashCode()
            };

            configuration = new SagaTestsConfiguration(nameof(legacySagaData.DocumentVersion), collectionNamingConvention);

            await PrepareSagaCollection(legacySagaData, nameof(legacySagaData.SomeCorrelationPropertyId), d =>
            {
                var document = d.ToBsonDocument();

                d.ETag = document.GetHashCode();

                return(d.ToBsonDocument());
            });

            var retrievedSagaData = await GetById <NServiceBusMongoDBLegacySagaData>(legacySagaData.Id);

            Assert.IsNotNull(retrievedSagaData, "Saga was not retrieved");
            Assert.AreEqual(legacySagaData.OriginalMessageId, retrievedSagaData.OriginalMessageId, "OriginalMessageId does not match");
            Assert.AreEqual(legacySagaData.Originator, retrievedSagaData.Originator, "Originator does not match");
            Assert.AreEqual(legacySagaData.SomeCorrelationPropertyId, retrievedSagaData.SomeCorrelationPropertyId, "SomeCorrelationPropertyId does not match");
            Assert.AreEqual(legacySagaData.SomeUpdatableSagaData, retrievedSagaData.SomeUpdatableSagaData, "SomeUpdatableSagaData does not match");
        }
        public async Task Persister_works_with_existing_sagas()
        {
            var legacySagaData = new Persistence.MongoDB.NServiceBusPersistenceMongoDBLegacySagaData
            {
                Id = Guid.NewGuid(),
                OriginalMessageId         = Guid.NewGuid().ToString(),
                Originator                = "SomeOriginator",
                Version                   = 5,
                SomeCorrelationPropertyId = Guid.NewGuid(),
                SomeUpdatableSagaData     = GetHashCode()
            };

            configuration = new SagaTestsConfiguration(nameof(legacySagaData.Version));

            await PrepareSagaCollection(legacySagaData, nameof(legacySagaData.SomeCorrelationPropertyId));

            var retrievedSagaData = await GetById <NServiceBusPersistenceMongoDBLegacySagaData>(legacySagaData.Id);

            Assert.IsNotNull(retrievedSagaData, "Saga was not retrieved");
            Assert.AreEqual(legacySagaData.OriginalMessageId, retrievedSagaData.OriginalMessageId, "OriginalMessageId does not match");
            Assert.AreEqual(legacySagaData.Originator, retrievedSagaData.Originator, "Originator does not match");
            Assert.AreEqual(legacySagaData.SomeCorrelationPropertyId, retrievedSagaData.SomeCorrelationPropertyId, "SomeCorrelationPropertyId does not match");
            Assert.AreEqual(legacySagaData.SomeUpdatableSagaData, retrievedSagaData.SomeUpdatableSagaData, "SomeUpdatableSagaData does not match");
        }
 public virtual async Task OneTimeSetUp()
 {
     configuration = new SagaTestsConfiguration();
     await configuration.Configure();
 }