Example #1
0
        public void Create_should_throw_when_input_null()
        {
            var sp  = NSubstitute.Substitute.For <IServiceProvider>();
            var sut = new DefaultSagaFactory <DummySaga, DummySagaState>(sp);

            Assert.Throws <ArgumentNullException>(() => sut.Create(null));
        }
Example #2
0
        public void Create_should_create_valid_instance()
        {
            var state        = new DummySagaState(Guid.NewGuid());
            var expectedSaga = new DummySaga();

            var sp = NSubstitute.Substitute.For <IServiceProvider>();

            sp.GetService(typeof(DummySaga))
            .Returns(expectedSaga);

            var bus = NSubstitute.Substitute.For <IMessageBus>();

            sp.GetService(typeof(IMessageBus))
            .Returns(bus);

            var scope = NSubstitute.Substitute.For <IServiceScope>();

            scope.ServiceProvider.Returns(sp);

            var factory = NSubstitute.Substitute.For <IServiceScopeFactory>();

            factory.CreateScope().Returns(scope);

            sp.GetService(typeof(IServiceScopeFactory))
            .Returns(factory);

            var sut  = new DefaultSagaFactory <DummySaga, DummySagaState>(sp);
            var saga = sut.Create(state);

            saga.Should().NotBeNull();
            saga.State.Should().Be(state);
        }
Example #3
0
        public InitiatedBySagaConnectorFactory()
        {
            _consumeFilter = new InitiatedBySagaMessageFilter<TSaga, TMessage>();

            ISagaFactory<TSaga, TMessage> sagaFactory = new DefaultSagaFactory<TSaga, TMessage>();

            _policy = new NewSagaPolicy<TSaga, TMessage>(sagaFactory, false);
        }
        public InitiatedBySagaConnectorFactory()
        {
            var consumeFilter = new InitiatedBySagaMessageFilter <TSaga, TMessage>();

            ISagaFactory <TSaga, TMessage> sagaFactory = new DefaultSagaFactory <TSaga, TMessage>();

            var policy = new NewSagaPolicy <TSaga, TMessage>(sagaFactory, false);

            _connector = new CorrelatedSagaMessageConnector <TSaga, TMessage>(consumeFilter, policy, x => x.Message.CorrelationId);
        }