Esempio n. 1
0
        public void SimpleCQRSScenarioTest1()
        {
            var changedName      = string.Empty;
            var eventStore       = new DictionaryEventStore();
            var eventBus         = new EventBus();
            var snapshotProvider = new SuppressedSnapshotProvider();

            eventBus.MessageReceived += (s, e) =>
            {
                if (e.Message is NameChangedEvent)
                {
                    changedName = (e.Message as NameChangedEvent).Name;
                }
            };
            eventBus.Subscribe();
            var domainRepository = new EventSourcingDomainRepository(eventStore, eventBus, snapshotProvider);

            var id    = Guid.NewGuid();
            var model = new Employee(id);

            model.ChangeName("daxnet");
            domainRepository.Save <Guid, Employee>(model);

            Assert.Equal("daxnet", changedName);
        }
        public void SimpleCQRSScenarioTest1()
        {
            var serviceCollection = new ServiceCollection();
            var messageHandlerExecutionContext = new ServiceProviderMessageHandlerExecutionContext(serviceCollection);

            var changedName      = string.Empty;
            var eventStore       = new DictionaryEventStore();
            var eventBus         = new SimpleEventBus(new MessageJsonSerializer(), messageHandlerExecutionContext);
            var snapshotProvider = new SuppressedSnapshotProvider();

            eventBus.MessageReceived += (s, e) =>
            {
                if (e.Message is NameChangedEvent)
                {
                    changedName = (e.Message as NameChangedEvent).Name;
                }
            };

            var domainRepository = new EventSourcingDomainRepository(eventStore, eventBus, snapshotProvider);

            var id    = Guid.NewGuid();
            var model = new Employee(id);

            model.ChangeName("daxnet");
            domainRepository.Save <Guid, Employee>(model);

            Assert.Equal("daxnet", changedName);
        }