mirror of
https://github.com/lukaszraczylo/traefikoidc.git
synced 2026-06-05 22:44:17 +00:00
c474bbafd6
* Cleanup excessive comments. * Remove leftovers hanging around from previous refactor * Improve test coverage
169 lines
4.2 KiB
Go
169 lines
4.2 KiB
Go
package traefikoidc
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/mock"
|
|
)
|
|
|
|
// TestifyJWKCache is a testify mock implementing JWKCacheInterface
|
|
type TestifyJWKCache struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// GetJWKS implements JWKCacheInterface
|
|
func (m *TestifyJWKCache) GetJWKS(ctx context.Context, jwksURL string, httpClient *http.Client) (*JWKSet, error) {
|
|
args := m.Called(ctx, jwksURL, httpClient)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*JWKSet), args.Error(1)
|
|
}
|
|
|
|
// Cleanup implements JWKCacheInterface
|
|
func (m *TestifyJWKCache) Cleanup() {
|
|
m.Called()
|
|
}
|
|
|
|
// Close implements JWKCacheInterface
|
|
func (m *TestifyJWKCache) Close() {
|
|
m.Called()
|
|
}
|
|
|
|
// TestifyTokenVerifier is a testify mock implementing TokenVerifier
|
|
type TestifyTokenVerifier struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// VerifyToken implements TokenVerifier
|
|
func (m *TestifyTokenVerifier) VerifyToken(token string) error {
|
|
args := m.Called(token)
|
|
return args.Error(0)
|
|
}
|
|
|
|
// TestifyJWTVerifier is a testify mock implementing JWTVerifier
|
|
type TestifyJWTVerifier struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// VerifyJWTSignatureAndClaims implements JWTVerifier
|
|
func (m *TestifyJWTVerifier) VerifyJWTSignatureAndClaims(jwt *JWT, token string) error {
|
|
args := m.Called(jwt, token)
|
|
return args.Error(0)
|
|
}
|
|
|
|
// TestifyTokenExchanger is a testify mock implementing TokenExchanger
|
|
type TestifyTokenExchanger struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// ExchangeCodeForToken implements TokenExchanger
|
|
func (m *TestifyTokenExchanger) ExchangeCodeForToken(ctx context.Context, grantType, codeOrToken, redirectURL, codeVerifier string) (*TokenResponse, error) {
|
|
args := m.Called(ctx, grantType, codeOrToken, redirectURL, codeVerifier)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*TokenResponse), args.Error(1)
|
|
}
|
|
|
|
// GetNewTokenWithRefreshToken implements TokenExchanger
|
|
func (m *TestifyTokenExchanger) GetNewTokenWithRefreshToken(refreshToken string) (*TokenResponse, error) {
|
|
args := m.Called(refreshToken)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*TokenResponse), args.Error(1)
|
|
}
|
|
|
|
// RevokeTokenWithProvider implements TokenExchanger
|
|
func (m *TestifyTokenExchanger) RevokeTokenWithProvider(token, tokenType string) error {
|
|
args := m.Called(token, tokenType)
|
|
return args.Error(0)
|
|
}
|
|
|
|
// TestifyCacheInterface is a testify mock implementing CacheInterface
|
|
type TestifyCacheInterface struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// Set implements CacheInterface
|
|
func (m *TestifyCacheInterface) Set(key string, value any, ttl time.Duration) {
|
|
m.Called(key, value, ttl)
|
|
}
|
|
|
|
// Get implements CacheInterface
|
|
func (m *TestifyCacheInterface) Get(key string) (any, bool) {
|
|
args := m.Called(key)
|
|
return args.Get(0), args.Bool(1)
|
|
}
|
|
|
|
// Delete implements CacheInterface
|
|
func (m *TestifyCacheInterface) Delete(key string) {
|
|
m.Called(key)
|
|
}
|
|
|
|
// SetMaxSize implements CacheInterface
|
|
func (m *TestifyCacheInterface) SetMaxSize(size int) {
|
|
m.Called(size)
|
|
}
|
|
|
|
// Size implements CacheInterface
|
|
func (m *TestifyCacheInterface) Size() int {
|
|
args := m.Called()
|
|
return args.Int(0)
|
|
}
|
|
|
|
// Clear implements CacheInterface
|
|
func (m *TestifyCacheInterface) Clear() {
|
|
m.Called()
|
|
}
|
|
|
|
// Cleanup implements CacheInterface
|
|
func (m *TestifyCacheInterface) Cleanup() {
|
|
m.Called()
|
|
}
|
|
|
|
// Close implements CacheInterface
|
|
func (m *TestifyCacheInterface) Close() {
|
|
m.Called()
|
|
}
|
|
|
|
// GetStats implements CacheInterface
|
|
func (m *TestifyCacheInterface) GetStats() map[string]any {
|
|
args := m.Called()
|
|
if args.Get(0) == nil {
|
|
return nil
|
|
}
|
|
return args.Get(0).(map[string]any)
|
|
}
|
|
|
|
// TestifyHTTPClient is a testify mock for http.Client
|
|
type TestifyHTTPClient struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// Do implements a mock HTTP client's Do method
|
|
func (m *TestifyHTTPClient) Do(req *http.Request) (*http.Response, error) {
|
|
args := m.Called(req)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*http.Response), args.Error(1)
|
|
}
|
|
|
|
// TestifyRoundTripper is a testify mock for http.RoundTripper
|
|
type TestifyRoundTripper struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// RoundTrip implements http.RoundTripper
|
|
func (m *TestifyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
|
args := m.Called(req)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*http.Response), args.Error(1)
|
|
}
|