@Override
    public Mono<AccessToken> createAccessToken(String clientId,
                                               Authentication authentication,
                                               boolean singleton) {
        return singleton
                ? doCreateSingletonAccessToken(clientId, authentication)
                : doCreateAccessToken(clientId, authentication, false).map(token -> token.toAccessToken(tokenExpireIn));
    }
@Test
    public void testCreateSingletonAccessToken() {
        RedisAccessTokenManager tokenManager = new RedisAccessTokenManager(RedisHelper.factory);

        SimpleAuthentication authentication = new SimpleAuthentication();
        authentication.setUser(SimpleUser.builder()
                                         .id("test")
                                         .build());
        Flux
            .concat(tokenManager
                        .createAccessToken("test", authentication, true),
                    tokenManager
                        .createAccessToken("test", authentication, true))
            .doOnNext(System.out::println)
            .as(StepVerifier::create)
            .expectNextCount(2)
            .verifyComplete();

    }