Add API Verification tests #259
Merged
GitHub Actions / Test Report - AspNetCore.Authentication.OAuth2Introspection.Tests
succeeded
Sep 20, 2025 in 1s
43 passed, 0 failed and 0 skipped
✅ AspNetCore.Authentication.OAuth2Introspection.Tests.trx
43 tests were completed in 6s with 43 passed, 0 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| Duende.AspNetCore.Authentication.OAuth2Introspection.Configuration | 8✅ | 651ms | ||
| Duende.AspNetCore.Authentication.OAuth2Introspection.Introspection | 19✅ | 2s | ||
| Duende.AspNetCore.Authentication.OAuth2Introspection.PublicApiVerification | 1✅ | 780ms | ||
| Duende.AspNetCore.Authentication.OAuth2Introspection.Unit | 15✅ | 119ms |
✅ Duende.AspNetCore.Authentication.OAuth2Introspection.Configuration
✅ Authority_Get_Introspection_Endpoint
✅ Authority_No_Network_Delay_Load
✅ Caching_With_Caching_Service
✅ Caching_Without_Caching_Service
✅ Empty_Options
✅ Endpoint_But_No_Authority
✅ No_ClientName_But_Introspection_Handler
✅ No_Token_Retriever
✅ Duende.AspNetCore.Authentication.OAuth2Introspection.Introspection
✅ Active_token_with_inline_event_events_should_be_called
✅ ActiveToken
✅ ActiveToken_RequestSending_AdditionalParameter_with_inline_event
✅ ActiveToken_With_Caching_Ttl_Longer_Than_Duration
✅ ActiveToken_With_Caching_Ttl_Shorter_Than_Duration
✅ ActiveToken_With_ClientAssertion(ttl: -5000, assertion1: "testAssertion1", assertion2: "testAssertion2")
✅ ActiveToken_With_ClientAssertion(ttl: 5000, assertion1: "testAssertion1", assertion2: "testAssertion1")
✅ ActiveToken_With_Discovery_Unavailable_On_First_Request
✅ ActiveToken_With_SavedToken
✅ ActiveToken_With_SavedToken_And_Caching
✅ ActiveToken_With_SavedToken_And_Caching_With_Cache_Key_Prefix
✅ ActiveToken_WithTwoConcurrentCalls_FirstCancelled_SecondShouldNotBeCancelled
✅ InActive_token_with_inline_event_events_should_be_called
✅ InactiveToken
✅ Repeated_active_token_with_caching_enabled_should_hit_cache
✅ Repeated_inactive_token_with_caching_enabled_should_hit_cache
✅ TwoConcurrentCalls_FirstIntrospectDoesNotThrow_SecondShouldNotBeCalled(behavior: Active, expectedStatusCode: OK)
✅ TwoConcurrentCalls_FirstIntrospectDoesNotThrow_SecondShouldNotBeCalled(behavior: Unauthorized, expectedStatusCode: Unauthorized)
✅ Unauthorized_Client
✅ Duende.AspNetCore.Authentication.OAuth2Introspection.PublicApiVerification
✅ VerifyPublicApi
✅ Duende.AspNetCore.Authentication.OAuth2Introspection.Unit
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC", "Bearer DEF"])
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC "])
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC ", "Bearer DEF"])
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC", "Basic XYZ"])
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC", "Bearer DEF"])
✅ Token_From_Header(expected: "ABC", headerValues: ["Bearer ABC"])
✅ Token_From_Header(expected: null, headerValues: ["Basic XYZ", "Bearer ABC"])
✅ Token_From_Header(expected: null, headerValues: ["Basic XYZ"])
✅ Token_From_Header(expected: null, headerValues: [])
✅ Token_From_Query(expected: "", queryString: "?access_token&access_token")
✅ Token_From_Query(expected: "", queryString: "?access_token=")
✅ Token_From_Query(expected: "abc", queryString: "?access_token=abc&access_token=xyz")
✅ Token_From_Query(expected: "xyz", queryString: "?a=1&access_token=xyz")
✅ Token_From_Query(expected: "xyz", queryString: "?access_token=xyz")
✅ Token_From_Query(expected: null, queryString: "?a=1")
Loading