103 lines
2.3 KiB
Go
103 lines
2.3 KiB
Go
package domaintest
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gitea.dwysokinski.me/twhelp/core/internal/domain"
|
|
"github.com/brianvoe/gofakeit/v7"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type ServerSnapshotCursorConfig struct {
|
|
ID int
|
|
ServerKey string
|
|
Date time.Time
|
|
}
|
|
|
|
func NewServerSnapshotCursor(tb TestingTB, opts ...func(cfg *ServerSnapshotCursorConfig)) domain.ServerSnapshotCursor {
|
|
tb.Helper()
|
|
|
|
cfg := &ServerSnapshotCursorConfig{
|
|
ID: RandID(),
|
|
ServerKey: RandServerKey(),
|
|
Date: gofakeit.Date(),
|
|
}
|
|
|
|
for _, opt := range opts {
|
|
opt(cfg)
|
|
}
|
|
|
|
ssc, err := domain.NewServerSnapshotCursor(
|
|
cfg.ID,
|
|
cfg.ServerKey,
|
|
cfg.Date,
|
|
)
|
|
require.NoError(tb, err)
|
|
|
|
return ssc
|
|
}
|
|
|
|
type ServerSnapshotConfig struct {
|
|
ID int
|
|
ServerKey string
|
|
NumPlayers int
|
|
NumActivePlayers int
|
|
NumInactivePlayers int
|
|
NumTribes int
|
|
NumActiveTribes int
|
|
NumInactiveTribes int
|
|
NumVillages int
|
|
NumPlayerVillages int
|
|
NumBarbarianVillages int
|
|
NumBonusVillages int
|
|
Date time.Time
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
func NewServerSnapshot(tb TestingTB, opts ...func(cfg *ServerSnapshotConfig)) domain.ServerSnapshot {
|
|
tb.Helper()
|
|
|
|
now := time.Now()
|
|
|
|
cfg := &ServerSnapshotConfig{
|
|
ID: RandID(),
|
|
ServerKey: RandServerKey(),
|
|
NumPlayers: gofakeit.IntRange(1, 10000),
|
|
NumActivePlayers: gofakeit.IntRange(1, 10000),
|
|
NumInactivePlayers: gofakeit.IntRange(1, 10000),
|
|
NumTribes: gofakeit.IntRange(1, 10000),
|
|
NumActiveTribes: gofakeit.IntRange(1, 10000),
|
|
NumInactiveTribes: gofakeit.IntRange(1, 10000),
|
|
NumVillages: gofakeit.IntRange(1, 10000),
|
|
NumPlayerVillages: gofakeit.IntRange(1, 10000),
|
|
NumBarbarianVillages: gofakeit.IntRange(1, 10000),
|
|
NumBonusVillages: gofakeit.IntRange(1, 10000),
|
|
Date: now,
|
|
CreatedAt: now,
|
|
}
|
|
|
|
for _, opt := range opts {
|
|
opt(cfg)
|
|
}
|
|
|
|
ss, err := domain.UnmarshalServerSnapshotFromDatabase(
|
|
cfg.ID,
|
|
cfg.ServerKey,
|
|
cfg.NumPlayers,
|
|
cfg.NumActivePlayers,
|
|
cfg.NumInactivePlayers,
|
|
cfg.NumTribes,
|
|
cfg.NumActiveTribes,
|
|
cfg.NumInactiveTribes,
|
|
cfg.NumVillages,
|
|
cfg.NumPlayerVillages,
|
|
cfg.NumBarbarianVillages,
|
|
cfg.NumBonusVillages,
|
|
cfg.Date,
|
|
cfg.CreatedAt,
|
|
)
|
|
require.NoError(tb, err)
|
|
|
|
return ss
|
|
}
|