Exemple #1
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);
        }
Exemple #2
0
        public void SetState_should_set_state()
        {
            var state = new DummySagaState(Guid.NewGuid());
            var sut   = new DummySaga(state);

            sut.State.Should().Be(state);
        }
Exemple #3
0
        public void OnHandlingErrorGetsCalledWhenBeforeHandlingThrowsExceptionForSagas()
        {
            // arrange
            Exception actual   = null;
            var       expected = new Exception();
            var       handler  = new DummySaga();

            activator.UseHandler(handler);
            dispatcher.BeforeHandling += (message, sagadata) =>
            {
                throw expected;
            };
            dispatcher.OnHandlingError += exception =>
            {
                actual = exception;
            };

            // act
            var task = dispatcher.Dispatch(new Object());

            Assert.Throws <AggregateException>(() => task.Wait());

            // assert
            Assert.AreEqual(expected, actual);
        }
Exemple #4
0
        public void SetBus_should_set_state()
        {
            var sut = new DummySaga();

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

            sut.SetBus(bus);
            sut.Bus.Should().Be(bus);
        }
Exemple #5
0
        public void SetBus_should_throw_when_input_null()
        {
            var sut = new DummySaga();

            Assert.Throws <ArgumentNullException>(() => sut.SetBus(null));
        }