Files
galaxy-game/gamemaster/internal/domain/playermapping/model_test.go
T
2026-05-03 07:59:03 +02:00

45 lines
1.1 KiB
Go

package playermapping
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func validMapping() PlayerMapping {
return PlayerMapping{
GameID: "game-1",
UserID: "user-1",
RaceName: "Aelinari",
EnginePlayerUUID: "00000000-0000-0000-0000-000000000001",
CreatedAt: time.Date(2026, 4, 27, 12, 0, 0, 0, time.UTC),
}
}
func TestPlayerMappingValidateHappy(t *testing.T) {
require.NoError(t, validMapping().Validate())
}
func TestPlayerMappingValidateRejects(t *testing.T) {
tests := []struct {
name string
mutate func(*PlayerMapping)
}{
{"empty game id", func(m *PlayerMapping) { m.GameID = "" }},
{"empty user id", func(m *PlayerMapping) { m.UserID = "" }},
{"empty race name", func(m *PlayerMapping) { m.RaceName = "" }},
{"empty engine uuid", func(m *PlayerMapping) { m.EnginePlayerUUID = "" }},
{"zero created at", func(m *PlayerMapping) { m.CreatedAt = time.Time{} }},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
mapping := validMapping()
tt.mutate(&mapping)
assert.Error(t, mapping.Validate())
})
}
}