When configuring mocks, it is important to specify the return value of functions (methods that return a value) and properties.
Moq supports this scenario with the Returns construct.
As previously seen, the most elementary scenario is configuring a method or a property to return a well-known value, i.e. a value already available while configuring the mock.
While configuring the mock, there might be the need for computing the return value based on the incoming inputs. To handle this scenario, Returns and ReturnsAsync have a set of overloads accepting a delegate instead of a finite value.