John-Luke Laue
John-Luke Laue

Reputation: 3856

How to mock IAuthorizationService in .net core 2.0

I'm using this resource authorization in my controller:

var result = await _authorizationService.AuthorizeAsync(User, document, operation);

I need to test my controller, and I need the authorization to pass in the test.

I tried:

_substituteAuthorizationService.AuthorizeAsync(Arg.Any<ClaimsPrincipal>(), null, Arg.Any<IEnumerable<IAuthorizationRequirement>>())
            .ReturnsForAnyArgs(new AuthorizationResult(......));

but I can't new an AuthorizationResult because it doesn't have a public constructor.

Any ideas? Thanks!

Upvotes: 10

Views: 3491

Answers (1)

Jasen
Jasen

Reputation: 14250

Not much detail here https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authorization.authorizationresult?view=aspnetcore-2.0

But you can return from the static method(s)

AuthorizationResult.Success()
AuthorizationResult.Failed()

Upvotes: 12

Related Questions