public async Task DoesNotAppendEventWhenLastEventIsFromSameDay()
        {
            var now                 = new DateTime(2019, 12, 25, 12, 00, 00);
            var utcNow              = now.ToUniversalTime();
            var clockProviderStub   = new ClockProviderStub(now);
            var inMemoryStreamStore = new InMemoryStreamStore(() => utcNow);
            var clockHasTicked      = new ClockHasTicked(new DateTime(2019, 12, 25, 11, 00, 00));

            var cancellationToken = CancellationToken.None;
            await inMemoryStreamStore.AppendToStream(
                streamId : new StreamId(ClockTickingService.ClockStreamId),
                expectedVersion : ExpectedVersion.Any,
                message : new NewStreamMessage(
                    messageId: Guid.NewGuid(),
                    type: _eventMapping.GetEventName(clockHasTicked.GetType()),
                    jsonData: JsonConvert.SerializeObject(clockHasTicked)),
                cancellationToken : cancellationToken);

            var sut = new ClockTickingService(inMemoryStreamStore, clockProviderStub);

            await sut.StartAsync(cancellationToken);

            var forwards = await inMemoryStreamStore.ReadAllForwards(Position.Start, Int32.MaxValue, true, cancellationToken);

            forwards.Messages.Should().HaveCount(1);
        }
コード例 #2
0
        private async Task AppendClockHasTicked(
            CancellationToken cancellationToken,
            StreamId clockStreamId,
            EventMapping eventMapping)
        {
            var clockHasTicked = new ClockHasTicked(_clockProvider.Now);

            await _streamStore.AppendToStream(
                streamId : clockStreamId,
                expectedVersion : ExpectedVersion.Any,
                message : new NewStreamMessage(
                    messageId: Guid.NewGuid(),
                    type: eventMapping.GetEventName(clockHasTicked.GetType()),
                    jsonData: JsonConvert.SerializeObject(clockHasTicked)),
                cancellationToken : cancellationToken);
        }