feat: authsession service
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package testkit
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"galaxy/authsession/internal/ports"
|
||||
)
|
||||
|
||||
// FixedCodeGenerator is a deterministic CodeGenerator double that always
|
||||
// returns the same code or error.
|
||||
type FixedCodeGenerator struct {
|
||||
// Code stores the fixed code returned by Generate when Err is nil.
|
||||
Code string
|
||||
|
||||
// Err is returned directly from Generate when set.
|
||||
Err error
|
||||
}
|
||||
|
||||
// Generate returns the configured fixed code.
|
||||
func (g FixedCodeGenerator) Generate() (string, error) {
|
||||
if g.Err != nil {
|
||||
return "", g.Err
|
||||
}
|
||||
switch {
|
||||
case strings.TrimSpace(g.Code) == "":
|
||||
return "", errors.New("fixed code generator code must not be empty")
|
||||
case strings.TrimSpace(g.Code) != g.Code:
|
||||
return "", errors.New("fixed code generator code must not contain surrounding whitespace")
|
||||
default:
|
||||
return g.Code, nil
|
||||
}
|
||||
}
|
||||
|
||||
var _ ports.CodeGenerator = FixedCodeGenerator{}
|
||||
Reference in New Issue
Block a user