@ -202,6 +202,94 @@ namespace OpenIddict.Tests
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
[Fact]
public async Task ValidateTokenRequest_RequestIsRejectedWhenEndpointPermissionIsNotGranted ( )
{
// Arrange
var application = new OpenIddictApplication ( ) ;
var manager = CreateApplicationManager ( instance = >
{
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( false ) ;
} ) ;
var server = CreateAuthorizationServer ( builder = >
{
builder . Services . AddSingleton ( manager ) ;
} ) ;
var client = new OpenIdConnectClient ( server . CreateClient ( ) ) ;
// Act
var response = await client . PostAsync ( TokenEndpoint , new OpenIdConnectRequest
{
ClientId = "Fabrikam" ,
GrantType = OpenIdConnectConstants . GrantTypes . Password ,
Username = "johndoe" ,
Password = "A3ddj3w"
} ) ;
// Assert
Assert . Equal ( OpenIdConnectConstants . Errors . UnauthorizedClient , response . Error ) ;
Assert . Equal ( "This client application is not allowed to use the token endpoint." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
[Fact]
public async Task ValidateTokenRequest_RequestIsRejectedWhenGrantTypePermissionIsNotGranted ( )
{
// Arrange
var application = new OpenIddictApplication ( ) ;
var manager = CreateApplicationManager ( instance = >
{
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( false ) ;
} ) ;
var server = CreateAuthorizationServer ( builder = >
{
builder . Services . AddSingleton ( manager ) ;
} ) ;
var client = new OpenIdConnectClient ( server . CreateClient ( ) ) ;
// Act
var response = await client . PostAsync ( TokenEndpoint , new OpenIdConnectRequest
{
ClientId = "Fabrikam" ,
GrantType = OpenIdConnectConstants . GrantTypes . Password ,
Username = "johndoe" ,
Password = "A3ddj3w"
} ) ;
// Assert
Assert . Equal ( OpenIdConnectConstants . Errors . UnauthorizedClient , response . Error ) ;
Assert . Equal ( "This client application is not allowed to use the specified grant type." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
[Fact]
public async Task ValidateTokenRequest_ClientCredentialsRequestFromPublicClientIsRejected ( )
{
@ -213,6 +301,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . ClientCredentials , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ;
@ -237,6 +333,10 @@ namespace OpenIddict.Tests
Assert . Equal ( "The specified 'grant_type' parameter is not valid for this client application." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . ClientCredentials , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
@ -251,6 +351,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ;
@ -277,6 +385,10 @@ namespace OpenIddict.Tests
Assert . Equal ( "The 'client_secret' parameter is not valid for this client application." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
@ -291,6 +403,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Confidential ) ;
} ) ;
@ -317,6 +437,10 @@ namespace OpenIddict.Tests
Assert . Equal ( "The 'client_secret' parameter required for this client application is missing." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
@ -331,6 +455,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Hybrid ) ;
} ) ;
@ -357,6 +489,10 @@ namespace OpenIddict.Tests
Assert . Equal ( "The 'client_secret' parameter required for this client application is missing." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
@ -371,6 +507,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Confidential ) ;
@ -400,6 +544,10 @@ namespace OpenIddict.Tests
Assert . Equal ( "The specified client credentials are invalid." , response . ErrorDescription ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
Mock . Get ( manager ) . Verify ( mock = > mock . ValidateClientSecretAsync ( application , "7Fjfp0ZBr1KtDRbnfVdmIw" , It . IsAny < CancellationToken > ( ) ) , Times . Once ( ) ) ;
}
@ -431,6 +579,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -483,6 +639,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -540,6 +704,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -599,6 +771,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -665,6 +845,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -733,6 +921,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -795,6 +991,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -878,6 +1082,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -975,6 +1187,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -1064,6 +1284,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -1145,6 +1373,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -1217,6 +1453,14 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Public ) ;
} ) ) ;
@ -1302,6 +1546,30 @@ namespace OpenIddict.Tests
instance . Setup ( mock = > mock . FindByClientIdAsync ( "Fabrikam" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( application ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . Endpoints . Token , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . AuthorizationCode , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . ClientCredentials , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . Password , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
OpenIddictConstants . Permissions . GrantTypes . RefreshToken , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . HasPermissionAsync ( application ,
"gt:urn:ietf:params:oauth:grant-type:custom_grant" , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( true ) ;
instance . Setup ( mock = > mock . GetClientTypeAsync ( application , It . IsAny < CancellationToken > ( ) ) )
. ReturnsAsync ( OpenIddictConstants . ClientTypes . Confidential ) ;