@Test
        void verifyAuthenticationWithCodeChallengePkce() throws Throwable {
            val refreshToken = getRefreshToken(service);
            ticketRegistry.addTicket(refreshToken);

            val code = getCode();
            when(code.getCodeChallenge()).thenReturn(UUID.randomUUID().toString());
            ticketRegistry.addTicket(code);

            val credentials = new UsernamePasswordCredentials(service.getClientId(), service.getClientSecret());
            val request = new MockHttpServletRequest();
            val ctx = new JEEContext(request, new MockHttpServletResponse());
            request.addParameter(OAuth20Constants.GRANT_TYPE, OAuth20GrantTypes.REFRESH_TOKEN.name());
            request.addParameter(OAuth20Constants.REFRESH_TOKEN, refreshToken.getId());
            request.addParameter(OAuth20Constants.CODE, code.getId());

            oauthClientAuthenticator.validate(new CallContext(ctx, new JEESessionStore()), credentials);
            assertNull(credentials.getUserProfile());
        }
This is {@link OAuth20ClientIdClientSecretAuthenticatorTests}.

@author Misagh Moayyed
@since 6.0.0
support/cas-server-support-oauth/src/test/java/org/apereo/cas/support/oauth/authenticator/OAuth20ClientIdClientSecretAuthenticatorTests.java