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); }); }