Пример #1
0
        public async Task Should_reset_consumer_when_resetting()
        {
            await sut.OnActivateAsync(consumerName);

            await sut.ActivateAsync();

            await sut.StopAsync();

            await sut.ResetAsync();

            state.Should().BeEquivalentTo(new EventConsumerState {
                IsStopped = false, Position = null, Error = null
            });

            A.CallTo(() => persistence.WriteSnapshotAsync(A <EventConsumerState> .Ignored))
            .MustHaveHappened(Repeated.Exactly.Twice);

            A.CallTo(() => eventConsumer.ClearAsync())
            .MustHaveHappened(Repeated.Exactly.Once);

            A.CallTo(() => eventSubscription.StopAsync())
            .MustHaveHappened(Repeated.Exactly.Once);

            A.CallTo(() => eventStore.CreateSubscription(A <IEventSubscriber> .Ignored, A <string> .Ignored, state.Position))
            .MustHaveHappened(Repeated.Exactly.Once);

            A.CallTo(() => eventStore.CreateSubscription(A <IEventSubscriber> .Ignored, A <string> .Ignored, null))
            .MustHaveHappened(Repeated.Exactly.Once);
        }
        public async Task Should_reset_consumer_when_resetting()
        {
            await sut.ActivateAsync(consumerName);

            await sut.ActivateAsync();

            await sut.StopAsync();

            await sut.ResetAsync();

            grainState.Value.Should().BeEquivalentTo(new EventConsumerState {
                IsStopped = false, Position = null, Error = null
            });

            A.CallTo(() => grainState.WriteAsync())
            .MustHaveHappened(2, Times.Exactly);

            A.CallTo(() => eventConsumer.ClearAsync())
            .MustHaveHappened(1, Times.Exactly);

            A.CallTo(() => eventSubscription.StopAsync())
            .MustHaveHappened(1, Times.Exactly);

            A.CallTo(() => eventStore.CreateSubscription(A <IEventSubscriber> .Ignored, A <string> .Ignored, grainState.Value.Position))
            .MustHaveHappened(1, Times.Exactly);

            A.CallTo(() => eventStore.CreateSubscription(A <IEventSubscriber> .Ignored, A <string> .Ignored, null))
            .MustHaveHappened(1, Times.Exactly);
        }