@Test
        void verifyUserBadCredentials() throws Throwable {
            val service = addRegisteredService(Set.of(OAuth20GrantTypes.PASSWORD), UUID.randomUUID().toString(), randomServiceUrl());
            val mockRequest = new MockHttpServletRequest(HttpMethod.GET.name(), CONTEXT + OAuth20Constants.ACCESS_TOKEN_URL);
            mockRequest.setParameter(OAuth20Constants.CLIENT_ID, service.getClientId());
            mockRequest.setParameter(OAuth20Constants.GRANT_TYPE, OAuth20GrantTypes.PASSWORD.name().toLowerCase(Locale.ENGLISH));
            mockRequest.setParameter(USERNAME, GOOD_USERNAME);
            mockRequest.setParameter(PASSWORD, "badPassword");
            val mockResponse = new MockHttpServletResponse();
            requiresAuthenticationInterceptor.preHandle(mockRequest, mockResponse, null);
            val mv = accessTokenController.handleRequest(mockRequest, mockResponse);
            assertEquals(HttpStatus.SC_UNAUTHORIZED, mockResponse.getStatus());
            assertEquals(OAuth20Constants.INVALID_GRANT, mv.getModel().get(OAuth20Constants.ERROR));
        }
Check the registered services always contain empty allowed grant types.
These tests are run to ensure that
the change that adds proper support for supported grant types does not break existing CAS
setups that does not specify allowed grant types. Briefly, it checks that empty  supported grant types
is equivalent to supported grant types with all valid values.

@return stream of services for tests
support/cas-server-support-oauth/src/test/java/org/apereo/cas/support/oauth/web/endpoints/OAuth20AccessTokenEndpointControllerTests.java