Allow marking conditional setups as .Verifiable() once again#1121
Merged
stakx merged 3 commits intodevlooped:masterfrom Dec 29, 2020
Merged
Allow marking conditional setups as .Verifiable() once again#1121stakx merged 3 commits intodevlooped:masterfrom
.Verifiable() once again#1121stakx merged 3 commits intodevlooped:masterfrom
Conversation
While this is a step away from being able to expose a generic `Verify(setupPredicate)` method, we need to do this for back-compat. A future `Verify(setupPredicate)` method will simply have to have slightly different behavior where the same predicate applies on both the setup & invocation sides. (This commit also removes a superfluous double predicate check.)
47bc700 to
6307c0b
Compare
mburumaxwell
pushed a commit
to faluapp/falu-dotnet
that referenced
this pull request
Jun 12, 2021
Bumps [Moq](https://github.com/moq/moq4) from 4.15.2 to 4.16.0. #Changelog *Sourced from [Moq's changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md).* > ## 4.16.0 (2021-01-16) > > #### Added > > * Ability to directly set up the `.Result` of tasks and value tasks, which makes setup expressions more uniform by rendering dedicated async verbs like `.ReturnsAsync`, `.ThrowsAsync`, etc. unnecessary: > > ```diff > -mock.Setup(x => x.GetFooAsync()).ReturnsAsync(foo) > +mock.Setup(x => x.GetFooAsync().Result).Returns(foo) > ``` > > This is useful in places where there currently aren't any such async verbs at all: > > ```diff > -Mock.Of<X>(x => x.GetFooAsync() == Task.FromResult(foo)) > +Mock.Of<X>(x => x.GetFooAsync().Result == foo) > ``` > > This also allows recursive setups / method chaining across async calls inside a single setup expression: > > ```diff > -mock.Setup(x => x.GetFooAsync()).ReturnsAsync(Mock.Of<IFoo>(f => f.Bar == bar)) > +mock.Setup(x => x.GetFooAsync().Result.Bar).Returns(bar) > ``` > > or, with only `Mock.Of`: > > ```diff > -Mock.Of<X>(x => x.GetFooAsync() == Task.FromResult(Mock.Of<IFoo>(f => f.Bar == bar))) > +Mock.Of<X>(x => x.GetFooAsync().Result.Bar == bar) > ``` > > This should work in all principal setup methods (`Mock.Of`, `mock.Setup…`, `mock.Verify…`). Support in `mock.Protected()` and for custom awaitable types may be added in the future. (@stakx, [#1126](devlooped/moq#1126)) > > #### Changed > > * Attempts to mark conditionals setup as verifiable are once again allowed; it turns out that forbidding it (as was done in [#997](devlooped/moq#997) for version 4.14.0) is in fact a regression. (@stakx, [#1121](devlooped/moq#1121)) > > #### Fixed > > * Performance regression: Adding setups to a mock becomes slower with each setup (@CeesKaas, [#1110](devlooped/moq#1110)) > > * Regression: `mock.Verify[All]` no longer marks invocations as verified if they were matched by conditional setups. (@Lyra2108, [#1114](devlooped/moq#1114)) #Commits - [`74d5863`](devlooped/moq@74d5863) Update version to 4.16.0 - [`424fe31`](devlooped/moq@424fe31) Fix typo in changelog - [`f48c0f4`](devlooped/moq@f48c0f4) Merge pull request [#1126](devlooped/moq#1126) from stakx/setup-task-result - [`6f6a89d`](devlooped/moq@6f6a89d) Update the changelog - [`66bcb21`](devlooped/moq@66bcb21) Enable `task.Result` in delegate-based setup methods - [`42521c4`](devlooped/moq@42521c4) Add ability in `IAwaitableFactory` to create result...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1114.