Exemplo n.º 1
0
        public void It_sends_all_messages_at_once_after_transaction_is_committed()
        {
            var connectionMock = MockRepository.GenerateMock <IEventStoreConnection>();

            connectionMock.Expect(x => x.AppendToStream(Arg <string> .Is.Anything,
                                                        Arg <int> .Is.Anything,
                                                        Arg <IEnumerable <EventData> > .Is.Anything, Arg <UserCredentials> .Is.Anything)).Repeat.Once().Return(new WriteResult());

            var connectionManager = new FakeConnectionManager()
            {
                Connection = connectionMock
            };
            var uow = new TransactionalUnitOfWork(connectionManager)
            {
                EndpointAddress = new Address("q", "m")
            };

            using (var tx = new TransactionScope())
            {
                uow.Send(new EventData(Guid.NewGuid(), "", false, new byte[0], new byte[0]));
                uow.Send(new EventData(Guid.NewGuid(), "", false, new byte[0], new byte[0]));
                tx.Complete();
            }

            connectionMock.VerifyAllExpectations();
        }
        protected MessagePublisher CreatePublisher(Address sourceAddress)
        {
            var connectionManager       = new DefaultConnectionManager(ConnectionConfiguration);
            var transactionalUnitOfWork = new TransactionalUnitOfWork(connectionManager)
            {
                EndpointAddress = sourceAddress
            };
            var eventSourcedUnitOfWork = new EventSourcedUnitOfWork(connectionManager)
            {
                EndpointAddress = sourceAddress
            };

            return(new MessagePublisher(transactionalUnitOfWork, eventSourcedUnitOfWork, connectionManager)
            {
                EndpointAddress = sourceAddress
            });
        }
Exemplo n.º 3
0
        public void It_does_not_send_events_to_store_before_transaction_is_committed()
        {
            var connectionMock = MockRepository.GenerateMock <IEventStoreConnection>();

            connectionMock.Expect(x => x.AppendToStream(Arg <string> .Is.Anything,
                                                        Arg <int> .Is.Anything,
                                                        Arg <EventData[]> .Is.Anything)).Repeat.Never();

            var connectionManager = new FakeConnectionManager()
            {
                Connection = connectionMock
            };
            var uow = new TransactionalUnitOfWork(connectionManager)
            {
                EndpointAddress = new Address("q", "m")
            };

            using (new TransactionScope())
            {
                uow.Send(new EventData(Guid.NewGuid(), "", false, new byte[0], new byte[0]));
            }

            connectionMock.VerifyAllExpectations();
        }
 /// <summary>
 /// Creates an instance of <see cref="UnitOfWorkActionFilter"/>
 /// </summary>
 /// <param name="unitOfWork">unit of work</param>
 public UnitOfWorkActionFilter(UnitOfWork unitOfWork)
 {
     this.unitOfWork = unitOfWork as TransactionalUnitOfWork
                       ?? throw new ArgumentNullException(nameof(unitOfWork));
 }