コード例 #1
0
        public async Task EventStream_ToObject__Between_dates_inclusive()
        {
            string         streamName  = "Aggregate-1";
            int            numOfEvents = 2;
            DateTimeOffset from        = new DateTimeOffset(new DateTime(2021, 1, 2, 0, 0, 0, DateTimeKind.Utc));
            DateTimeOffset to          = new DateTimeOffset(new DateTime(2021, 1, 3, 0, 0, 0, DateTimeKind.Utc));
            var            target      = new EventStream(streamName, streamStore, logger);

            streamStore.ReadStream(streamName, from, to).Returns(Streams.Aggregate_1.Skip(1).Take(numOfEvents).ToAsyncEnumerable());
            var result = await target.Between(from, to).ToObject <Aggregate>(Substitute.ForPartsOf <Aggregate>(), (@event, aggregate) => aggregate.Apply(@event));

            result.ReceivedCalls().Count().Should().Be(numOfEvents);

            Approvals.Verify(JObject.FromObject(result).ToString());
        }