Пример #1
0
        public async Task ItWorks()
        {
            var activator = new BuiltinHandlerActivator();

            Using(activator);

            activator.Register(() => new SomeSaga());

            var database = MongoTestHelper.GetMongoDatabase();

            Configure.With(activator)
            .Transport(t => t.UseInMemoryTransport(new InMemNetwork(), "bimse"))
            .Sagas(s => s.StoreInMongoDb(database))
            .Start();

            await activator.Bus.SendLocal("hej med dig min ven!");

            await activator.Bus.SendLocal("hej igen min ven!");

            await Task.Delay(TimeSpan.FromSeconds(3));

            var collection = database.GetCollection <SomeSagaData>(nameof(SomeSagaData));

            var data = await collection.Find(d => true).ToListAsync();

            Assert.That(data.Count, Is.EqualTo(2),
                        "The second insert would fail, because there would be an index with a unique constraint on 'Id', but since the Id properti is mapped to '_id', values in that index would be null");
        }
        public void Setup()
        {
            _mongo = MongoTestHelper.GetCachedMockMongoServer();
            _mongo.IsDatabaseNameValid(Arg.Any <string>(), out _message).Returns(true);
            _mongo.GetDatabase(Arg.Any <string>(), Arg.Any <WriteConcern>()).Returns(x => MongoTestHelper.GetMockMongoDatabase((string)x[0], (WriteConcern)x[1]));

            TransactionSynchronizationManager.InitSynchronization();
        }
Пример #3
0
        protected override void SetUp()
        {
            var database = MongoTestHelper.GetMongoDatabase();

            database.DropCollection(nameof(MyIdempotentSaga));

            _sagaStorage = new MongoDbSagaStorage(database, new ConsoleLoggerFactory(colored: false));
            _sagaStorage.Initialize();
        }
        public void TearDown()
        {
            var keys = new object[TransactionSynchronizationManager.ResourceDictionary.Keys.Count];

            TransactionSynchronizationManager.ResourceDictionary.Keys.CopyTo(keys, 0);
            foreach (var key in keys)
            {
                TransactionSynchronizationManager.UnbindResource(key);
            }

            TransactionSynchronizationManager.ClearSynchronization();

            _mongo.ClearReceivedCalls();
            _mongo = null;
            MongoTestHelper.ClearCache();
        }
        public async Task VerifyThatInitializationOnlyOccursOnce()
        {
            var database      = MongoTestHelper.GetMongoDatabase();
            var loggerFactory = new ListLoggerFactory(outputToConsole: true);
            var storage       = new MongoDbSagaStorage(database, loggerFactory);

            storage.Initialize();

            await storage.Insert(new SomeSagaData { Id = Guid.NewGuid() }, Enumerable.Empty <ISagaCorrelationProperty>());

            await storage.Insert(new SomeSagaData { Id = Guid.NewGuid() }, Enumerable.Empty <ISagaCorrelationProperty>());

            await storage.Insert(new SomeSagaData { Id = Guid.NewGuid() }, Enumerable.Empty <ISagaCorrelationProperty>());

            var numberOfInitializations = loggerFactory
                                          .Count(line => line.Text.Contains("Initializing index for saga data"));

            Assert.That(numberOfInitializations, Is.EqualTo(1),
                        "Only expected the collection's indexes to be initialized once!");
        }
        public async Task VerifyNiceExceptionWhenSerializerHasBeenImproperlyCustomized()
        {
            BsonClassMap.RegisterClassMap <SagaData>(c =>
            {
                c.MapField(d => d.Id);
            });

            var activator         = Using(new BuiltinHandlerActivator());
            var listLoggerFactory = new ListLoggerFactory();

            activator.Register(() => new SomeSaga());

            Configure.With(activator)
            .Logging(l => l.Use(listLoggerFactory))
            .Transport(t => t.UseInMemoryTransport(new InMemNetwork(), "who-cares"))
            .Sagas(s => s.StoreInMongoDb(MongoTestHelper.GetMongoDatabase()))
            .Start();

            await activator.Bus.SendLocal("hej med dig!");

            await Task.Delay(TimeSpan.FromSeconds(2));

            var error = listLoggerFactory.FirstOrDefault(l => l.Level == LogLevel.Error)
                        ?? throw new AssertionException("Did not find any log entries with Level == Error");

            Console.WriteLine($@"----------------------------------------------------------------------------------------------
Found this:

{error.Text}
----------------------------------------------------------------------------------------------");

            var message = error.Text;

            Assert.That(message, Contains.Substring("_id"));
            Assert.That(message, Contains.Substring("Id"));
        }
Пример #7
0
 public MongoDbTimeoutManagerFactory()
 {
     _mongoDatabase = MongoTestHelper.GetMongoDatabase();
     DropCollection(_collectionName);
 }
Пример #8
0
 public void CleanUp()
 {
     MongoTestHelper.DropMongoDatabase();
 }
Пример #9
0
        public ISagaStorage GetSagaStorage()
        {
            _mongoDatabase = MongoTestHelper.GetMongoDatabase();

            return(new MongoDbSagaStorage(_mongoDatabase));
        }
        public MongoDbDataBusStorageFactory()
        {
            MongoTestHelper.DropMongoDatabase();

            _mongoDatabase = MongoTestHelper.GetMongoDatabase();
        }
Пример #11
0
        public ISagaStorage GetSagaStorage()
        {
            _mongoDatabase = MongoTestHelper.GetMongoDatabase();

            return(new MongoDbSagaStorage(_mongoDatabase, new ConsoleLoggerFactory(colored: false)));
        }
Пример #12
0
        public MongoDbSnapshotStorageFactory()
        {
            MongoTestHelper.DropMongoDatabase();

            _mongoDatabase = MongoTestHelper.GetMongoDatabase();
        }
Пример #13
0
 protected override void SetUp() => MongoTestHelper.DropMongoDatabase();
Пример #14
0
        public ISubscriptionStorage Create()
        {
            _mongoDatabase = MongoTestHelper.GetMongoDatabase();

            return(new MongoDbSubscriptionStorage(_mongoDatabase, "subscriptions", true));
        }
Пример #15
0
 protected override void TearDown()
 {
     MongoTestHelper.DropMongoDatabase();
 }
Пример #16
0
 protected override void SetUp()
 {
     MongoTestHelper.DropMongoDatabase();
     _database = MongoTestHelper.GetMongoDatabase();
 }