Пример #1
0
            public void CollectCommandsToBePublished()
            {
                var sagaCommand1 = new SagaCommand(GuidStrategy.NewGuid(), new HeaderCollection((IEnumerable <Header>)HeaderCollection.Empty), new FakeCommand());
                var sagaCommand2 = new SagaCommand(GuidStrategy.NewGuid(), new HeaderCollection((IEnumerable <Header>)HeaderCollection.Empty), new FakeCommand());

                using (var context = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), new FakeEvent()))
                {
                    context.Publish(sagaCommand1.AggregateId, sagaCommand1.Headers, sagaCommand1.Command);
                    context.Publish(sagaCommand2.AggregateId, sagaCommand2.Headers, sagaCommand2.Command);

                    var publishedCommands = context.GetPublishedCommands().ToArray();
                    Assert.Equal(sagaCommand1.AggregateId, publishedCommands[0].AggregateId);
                    Assert.Equal(sagaCommand2.AggregateId, publishedCommands[1].AggregateId);
                }
            }
            public void CollectCommandsToBePublished()
            {
                var sagaCommand1 = new SagaCommand(GuidStrategy.NewGuid(), new HeaderCollection((IEnumerable<Header>) HeaderCollection.Empty), new FakeCommand());
                var sagaCommand2 = new SagaCommand(GuidStrategy.NewGuid(), new HeaderCollection((IEnumerable<Header>)HeaderCollection.Empty), new FakeCommand());

                using (var context = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), new FakeEvent()))
                {
                    context.Publish(sagaCommand1.AggregateId, sagaCommand1.Headers, sagaCommand1.Command);
                    context.Publish(sagaCommand2.AggregateId, sagaCommand2.Headers, sagaCommand2.Command);

                    var publishedCommands = context.GetPublishedCommands().ToArray();
                    Assert.Equal(sagaCommand1.AggregateId, publishedCommands[0].AggregateId);
                    Assert.Equal(sagaCommand2.AggregateId, publishedCommands[1].AggregateId);
                }
            }
Пример #3
0
            public void CopyUserNameHeaderFromEventContext()
            {
                var saga     = new FakeSaga();
                var userName = Guid.NewGuid().ToString();
                var e        = new FakeEvent {
                    Id = GuidStrategy.NewGuid()
                };
                var headers = new HeaderCollection(new Dictionary <String, string> {
                    { Header.UserName, userName }
                });

                using (new EventContext(e.Id, headers, e))
                    using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                    {
                        saga.Handle(new FakeEvent());

                        Assert.Equal(userName, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                    }
            }
Пример #4
0
            public void CopyRemoteAddressHeaderFromEventContextIfNoUserAddress()
            {
                var saga        = new FakeSaga();
                var userAddress = IPAddress.Loopback.ToString();
                var e           = new FakeEvent {
                    Id = GuidStrategy.NewGuid()
                };
                var headers = new HeaderCollection(new Dictionary <String, string> {
                    { Header.RemoteAddress, userAddress }
                });

                using (new EventContext(e.Id, headers, e))
                    using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                    {
                        saga.Handle(new FakeEvent());

                        Assert.Equal(userAddress, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                    }
            }
Пример #5
0
            public void PreferCustomHeaderOverEventContextHeaderIfDefined()
            {
                var saga           = new FakeSaga();
                var userName       = Guid.NewGuid().ToString();
                var customUserName = Guid.NewGuid().ToString();
                var e = new FakeEvent {
                    Id = GuidStrategy.NewGuid()
                };
                var headers = new HeaderCollection(new Dictionary <String, string> {
                    { Header.UserName, userName }
                });

                using (new EventContext(e.Id, headers, e))
                    using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                    {
                        saga.Handle(new FakeEvent {
                            CustomHeaders = new[] { new Header(Header.UserName, customUserName, checkReservedNames: false) }
                        });

                        Assert.Equal(customUserName, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                    }
            }
Пример #6
0
            public void PreferCustomHeaderOverEventContextHeaderIfDefined()
            {
                var saga = new FakeSaga();
                var userName = Guid.NewGuid().ToString();
                var customUserName = Guid.NewGuid().ToString();
                var e = new FakeEvent { Id = GuidStrategy.NewGuid() };
                var headers = new HeaderCollection(new Dictionary<String, string> { { Header.UserName, userName } });

                using (new EventContext(e.Id, headers, e))
                using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                {
                    saga.Handle(new FakeEvent { CustomHeaders = new[] { new Header(Header.UserName, customUserName, checkReservedNames: false) } });

                    Assert.Equal(customUserName, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                }
            }
Пример #7
0
            public void CopyUserNameHeaderFromEventContext()
            {
                var saga = new FakeSaga();
                var userName = Guid.NewGuid().ToString();
                var e = new FakeEvent { Id = GuidStrategy.NewGuid() };
                var headers = new HeaderCollection(new Dictionary<String, string> { { Header.UserName, userName } });

                using (new EventContext(e.Id, headers, e))
                using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                {
                    saga.Handle(new FakeEvent());

                    Assert.Equal(userName, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                }
            }
Пример #8
0
            public void CopyRemoteAddressHeaderFromEventContextIfNoUserAddress()
            {
                var saga = new FakeSaga();
                var userAddress = IPAddress.Loopback.ToString();
                var e = new FakeEvent { Id = GuidStrategy.NewGuid() };
                var headers = new HeaderCollection(new Dictionary<String, string> { { Header.RemoteAddress, userAddress } });

                using (new EventContext(e.Id, headers, e))
                using (var sagaContext = new SagaContext(typeof(Saga), GuidStrategy.NewGuid(), e))
                {
                    saga.Handle(new FakeEvent());

                    Assert.Equal(userAddress, sagaContext.GetPublishedCommands().Single().Headers.Single().Value);
                }
            }