コード例 #1
0
        public ConsoleClient()
        {
            var userRepository  = new UserRepositoryInMemory();
            var trackRepository = new TrackRepositoryInMemory();
            var eventRepository = new EventRepositoryInMemory();

            _userService   = new UserService(userRepository);
            _tracksService = new TracksService(trackRepository, eventRepository);
            _eventService  = new EventService(eventRepository, trackRepository);
        }
コード例 #2
0
        public async Task EventFeedsParsesEventCorrectly_NotBeingSubscribedEvent()
        {
            var eventRepositoryInMemory = new EventRepositoryInMemory();
            var domainEvents            = new List <IDomainEvent> {
                new UnitTestsPublished.EventPublishedAndSubscribed("123",
                                                                   "add")
            };

            (await eventRepositoryInMemory.AppendAsync(domainEvents, 0)).Check();
            var localEventFeed = new LocalEventFeed <ReadModelEventHandler <ReadModelWithNotSubbedEvent> >(eventRepositoryInMemory);
            var eventsAsync    = (await localEventFeed.GetEventsAsync()).ToList();

            Assert.AreEqual(0, eventsAsync.Count);
        }
コード例 #3
0
        public void TryCreate_TryGetEventsByTrack()
        {
            var repository = new EventRepositoryInMemory();
            var eventId    = Guid.NewGuid();
            var trackId    = Guid.NewGuid();
            var newEvent   =
                new Event(eventId, DateTime.Now, trackId, new Customizations());

            repository.TryCreate(newEvent);

            var gotEvents = repository.TryGetEventsByTrack(trackId);

            Assert.AreEqual(eventId, gotEvents.First().Id);
        }
コード例 #4
0
        public async Task EventFeedsParsesEventCorrectly_ReadModel()
        {
            var eventRepositoryInMemory = new EventRepositoryInMemory();
            var domainEvents            = new List <IDomainEvent> {
                new UnitTestsPublished.EventPublishedAndSubscribed("123",
                                                                   "add")
            };

            (await eventRepositoryInMemory.AppendAsync(domainEvents, 0)).Check();
            var localEventFeed = new LocalEventFeed <ReadModelEventHandler <ReadModelForModolith> >(eventRepositoryInMemory);
            var eventsAsync    = (await localEventFeed.GetEventsAsync()).ToList();

            var subscribedDomainEvent = eventsAsync.Single().DomainEvent as UnitTestsSubscribed.EventPublishedAndSubscribed;

            Assert.AreEqual("add", subscribedDomainEvent.Addition);
        }
コード例 #5
0
        public void TryDelete()
        {
            var repository = new EventRepositoryInMemory();
            var eventId    = Guid.NewGuid();
            var trackId    = Guid.NewGuid();
            var newEvent   =
                new Event(eventId, DateTime.Now, trackId, new Customizations());

            repository.TryCreate(newEvent);

            repository.TryDelete(eventId);

            var gotEvents = repository.TryGetEventsByTrack(trackId);

            Assert.IsEmpty(gotEvents);
        }
コード例 #6
0
        public static IServiceCollection AddMicrowavePersistenceLayerInMemory(this IServiceCollection services,
                                                                              Action <DomainEventSeeding> addEventSeeding = null)
        {
            addEventSeeding = addEventSeeding ?? (d => { });
            var domainEventSeeding = new DomainEventSeeding();

            addEventSeeding.Invoke(domainEventSeeding);

            var eventRepositoryInMemory = new EventRepositoryInMemory(domainEventSeeding.DomainEventSeeds);

            services.AddSingleton <IStatusRepository, StatusRepositoryInMemory>();
            services.AddSingleton <IVersionRepository, VersionRepositoryInMemory>();
            services.AddSingleton <IReadModelRepository, ReadModelRepositoryInMemory>();
            services.AddSingleton <IEventRepository>(eventRepositoryInMemory);
            services.AddSingleton <ISnapShotRepository, SnapShotRepositoryInMemory>();

            return(services);
        }