예제 #1
0
        public static AppDbContext WithDefaults()
        {
            var options = new DbContextOptionsBuilder()
                          .UseInMemoryDatabase($"{Guid.NewGuid()}")
                          .Options;

            var context      = new EventStoreDbContext(options);
            var dateTime     = new MachineDateTime();
            var eventStore   = new EventStore(context, dateTime, new TestCorrelationIdAccessor(Guid.NewGuid()));
            var aggregateSet = new AggregateSet(context, dateTime);

            var appDbContext = new AppDbContext(eventStore, aggregateSet);

            DbInitializer.Initialize(appDbContext, ConfigurationFactory.Create());

            appDbContext.SaveChangesAsync(default).GetAwaiter().GetResult();
예제 #2
0
        public async Task Should_StoreAndReHydrateCorrectly()
        {
            var fakeId = Guid.NewGuid();

            var dateRange = DateRange.Create(DateTime.UtcNow.AddDays(1), DateTime.UtcNow.AddDays(2)).Value;

            var rental = new Rental(fakeId, fakeId, dateRange, (Price)1m);

            var dateTime            = new MachineDateTime();
            var options             = new DbContextOptionsBuilder().UseInMemoryDatabase("UnitTest").Options;
            var eventStoreDbContext = new EventStoreDbContext(options);
            var eventStore          = new EventStore(eventStoreDbContext, dateTime);
            var aggregateSet        = new AggregateSet(eventStoreDbContext, dateTime);

            eventStore.Store(rental);

            await eventStore.SaveChangesAsync(default);