protected override void DoSetUp()
        {
            var servicePath = TestAzureHelper.GetPath("test");

            _commandProcessor = CommandProcessor.With()
                                .Logging(l => l.UseConsole(minLevel: Logger.Level.Debug))
                                .EventStore(e => e.Register <IEventStore>(c => new InMemoryEventStore()))
                                .EventDispatcher(e => e.UseAzureServiceBusRelayEventDispatcher("cirqus", servicePath, TestAzureHelper.KeyName, TestAzureHelper.SharedAccessKey))
                                .Create();

            RegisterForDisposal(_commandProcessor);

            _eventStoreProxy = new AzureServiceBusRelayEventStoreProxy("cirqus", servicePath, TestAzureHelper.KeyName, TestAzureHelper.SharedAccessKey);

            RegisterForDisposal(_eventStoreProxy);

            _viewManager = new InMemoryViewManager <View>();

            var serializer = new JsonDomainEventSerializer();
            var typeMapper = new DefaultDomainTypeNameMapper();

            var eventDispatcher = new ViewManagerEventDispatcher(new DefaultAggregateRootRepository(_eventStoreProxy, serializer, typeMapper), _eventStoreProxy, serializer, typeMapper);

            RegisterForDisposal(eventDispatcher);

            eventDispatcher.AddViewManager(_viewManager);
            eventDispatcher.Initialize();
        }
Example #2
0
        void SaveEvents(int numberOfCommandsToProcess, string aggregateRootId)
        {
            var eventStore     = new MongoDbEventStore(_database, "Events");
            var serializer     = new JsonDomainEventSerializer();
            var typeNameMapper = new DefaultDomainTypeNameMapper();

            Enumerable.Range(0, numberOfCommandsToProcess)
            .ToList()
            .ForEach(number =>
            {
                var domainEvents = new[]
                {
                    new RootGotNewNumber(number)
                    {
                        Meta =
                        {
                            { DomainEvent.MetadataKeys.AggregateRootId, aggregateRootId                                  },
                            { DomainEvent.MetadataKeys.SequenceNumber,  number.ToString()                                },
                            { DomainEvent.MetadataKeys.TimeUtc,         Time.UtcNow().ToString("u")                      },
                            { DomainEvent.MetadataKeys.Type,            typeNameMapper.GetName(typeof(RootGotNewNumber)) },
                            { DomainEvent.MetadataKeys.Owner,           typeNameMapper.GetName(typeof(Root))             },
                        }
                    }
                };

                eventStore.Save(Guid.NewGuid(), domainEvents.Select(e => serializer.Serialize(e)));
            });
        }
Example #3
0
        static InMemoryUnitOfWork GetUnitOfWork()
        {
            var serializer = new JsonDomainEventSerializer();
            var mapper     = new DefaultDomainTypeNameMapper();
            var eventStore = new InMemoryEventStore(serializer);
            var repository = new DefaultAggregateRootRepository(eventStore, serializer, mapper);

            return(new InMemoryUnitOfWork(repository, mapper));
        }
Example #4
0
        protected override void DoSetUp()
        {
            _eventStore            = new MongoDbEventStore(MongoHelper.InitializeTestDatabase(), "Events");
            _domainEventSerializer = new JsonDomainEventSerializer();

            _domainTypeNameMapper = new DefaultDomainTypeNameMapper();

            var snapshotCache = new InMemorySnapshotCache();

            _realAggregateRootRepository    = new DefaultAggregateRootRepository(_eventStore, _domainEventSerializer, _domainTypeNameMapper);
            _cachingAggregateRootRepository = new CachingAggregateRootRepositoryDecorator(_realAggregateRootRepository, snapshotCache, _eventStore, _domainEventSerializer);
        }