예제 #1
0
        public async Task Updates_ToBeRetried_When_Sending_Results_In_RetryableFail <T>(
            NotifyRetry retry,
            NotifyType <T> type) where T : Entity
        {
            // Arrange
            IStep sut = CreateSendNotifyStepWithSender(StubSenderWithResult(retry.SendResult));

            string ebmsMessageId = Guid.NewGuid().ToString();
            T      entity        = type.Insertion(GetDataStoreContext)(ebmsMessageId, retry.CurrentRetryCount, retry.MaxRetryCount);

            // Act
            await sut.ExecuteAsync(CreateNotifyMessage <T>(ebmsMessageId, entity));

            // Assert
            type.Assertion(GetDataStoreContext)(
                ebmsMessageId,
                e =>
            {
                (int _, Operation actualOperation) = type.OperationGetter(GetDataStoreContext, e);
                Assert.Equal(retry.ExpectedOperation, actualOperation);
            });
        }