Files
ietf-wimse-ect/refimpl/go-lang/ect/config_test.go
Christian Nennemann bbf557e54b Restructure refimpl into go-lang and python subdirectories
Move Go reference implementation to refimpl/go-lang/ and add new
Python reference implementation in refimpl/python/. Update build.sh
with renamed draft and simplified tool paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 23:11:55 +01:00

80 lines
2.0 KiB
Go

package ect
import (
"os"
"testing"
"time"
)
func TestDefaultConfig(t *testing.T) {
c := DefaultConfig()
if c.IATMaxAge != 15*time.Minute {
t.Errorf("IATMaxAge: got %v", c.IATMaxAge)
}
if c.JTIReplaySize != 0 {
t.Errorf("JTIReplaySize: got %d", c.JTIReplaySize)
}
}
func TestLoadConfigFromEnv(t *testing.T) {
os.Setenv(EnvIATMaxAgeMinutes, "20")
os.Setenv(EnvJTIReplayCacheSize, "1000")
os.Setenv(EnvIATMaxFutureSec, "45")
os.Setenv(EnvDefaultExpiryMin, "12")
os.Setenv(EnvJTIReplayTTLMin, "90")
defer func() {
os.Unsetenv(EnvIATMaxAgeMinutes)
os.Unsetenv(EnvJTIReplayCacheSize)
os.Unsetenv(EnvIATMaxFutureSec)
os.Unsetenv(EnvDefaultExpiryMin)
os.Unsetenv(EnvJTIReplayTTLMin)
}()
c := LoadConfigFromEnv()
if c.IATMaxAge != 20*time.Minute {
t.Errorf("IATMaxAge from env: got %v", c.IATMaxAge)
}
if c.JTIReplaySize != 1000 {
t.Errorf("JTIReplaySize from env: got %d", c.JTIReplaySize)
}
if c.IATMaxFuture != 45*time.Second {
t.Errorf("IATMaxFuture: got %v", c.IATMaxFuture)
}
if c.DefaultExpiry != 12*time.Minute {
t.Errorf("DefaultExpiry: got %v", c.DefaultExpiry)
}
if c.JTIReplayTTL != 90*time.Minute {
t.Errorf("JTIReplayTTL: got %v", c.JTIReplayTTL)
}
}
func TestLoadConfigFromEnv_invalidInt(t *testing.T) {
os.Setenv(EnvIATMaxAgeMinutes, "bad")
defer os.Unsetenv(EnvIATMaxAgeMinutes)
c := LoadConfigFromEnv()
if c.IATMaxAge != 15*time.Minute {
t.Errorf("invalid int should keep default: got %v", c.IATMaxAge)
}
}
func TestConfig_CreateOptions(t *testing.T) {
c := DefaultConfig()
opts := c.CreateOptions("my-kid")
if opts.KeyID != "my-kid" {
t.Errorf("KeyID: got %q", opts.KeyID)
}
if opts.DefaultExpiry != c.DefaultExpiry {
t.Errorf("DefaultExpiry: got %v", opts.DefaultExpiry)
}
}
func TestConfig_VerifyOptions(t *testing.T) {
c := DefaultConfig()
opts := c.VerifyOptions()
if opts.IATMaxAge != c.IATMaxAge {
t.Errorf("IATMaxAge: got %v", opts.IATMaxAge)
}
if opts.DAG.ClockSkewTolerance != DefaultClockSkewTolerance {
t.Errorf("DAG.ClockSkewTolerance: got %d", opts.DAG.ClockSkewTolerance)
}
}