2023-12-24 10:44:20 +00:00
|
|
|
package domaintest
|
|
|
|
|
2023-12-25 09:13:42 +00:00
|
|
|
import (
|
|
|
|
"net/url"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
|
|
|
|
"github.com/brianvoe/gofakeit/v6"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
2023-12-24 10:44:20 +00:00
|
|
|
|
|
|
|
func RandServerKey() string {
|
|
|
|
return gofakeit.LetterN(5)
|
|
|
|
}
|
2023-12-25 09:13:42 +00:00
|
|
|
|
2024-02-07 07:17:47 +00:00
|
|
|
type ServerCursorConfig struct {
|
|
|
|
Key string
|
|
|
|
Open bool
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewServerCursor(tb TestingTB, opts ...func(cfg *ServerCursorConfig)) domain.ServerCursor {
|
|
|
|
tb.Helper()
|
|
|
|
|
|
|
|
cfg := &ServerCursorConfig{
|
|
|
|
Key: RandServerKey(),
|
|
|
|
Open: gofakeit.Bool(),
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, opt := range opts {
|
|
|
|
opt(cfg)
|
|
|
|
}
|
|
|
|
|
2024-02-12 07:07:15 +00:00
|
|
|
sc, err := domain.NewServerCursor(cfg.Key, cfg.Open)
|
2024-02-07 07:17:47 +00:00
|
|
|
require.NoError(tb, err)
|
|
|
|
|
2024-02-12 07:07:15 +00:00
|
|
|
return sc
|
2024-02-07 07:17:47 +00:00
|
|
|
}
|
|
|
|
|
2023-12-25 09:13:42 +00:00
|
|
|
type ServerConfig struct {
|
|
|
|
Key string
|
|
|
|
VersionCode string
|
|
|
|
URL *url.URL
|
|
|
|
Open bool
|
|
|
|
Special bool
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewServer(tb TestingTB, opts ...func(cfg *ServerConfig)) domain.Server {
|
|
|
|
tb.Helper()
|
|
|
|
|
|
|
|
cfg := &ServerConfig{
|
|
|
|
Key: RandServerKey(),
|
|
|
|
VersionCode: RandVersionCode(),
|
|
|
|
Open: true,
|
|
|
|
Special: false,
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, opt := range opts {
|
|
|
|
opt(cfg)
|
|
|
|
}
|
|
|
|
|
|
|
|
if cfg.URL == nil {
|
|
|
|
cfg.URL = &url.URL{
|
|
|
|
Scheme: "https",
|
|
|
|
Host: cfg.Key + "." + gofakeit.DomainName(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
s, err := domain.UnmarshalServerFromDatabase(
|
|
|
|
cfg.Key,
|
|
|
|
cfg.VersionCode,
|
|
|
|
cfg.URL.String(),
|
|
|
|
cfg.Open,
|
|
|
|
cfg.Special,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
2023-12-25 11:04:12 +00:00
|
|
|
NewServerConfig(tb),
|
|
|
|
NewBuildingInfo(tb),
|
|
|
|
NewUnitInfo(tb),
|
2023-12-25 09:13:42 +00:00
|
|
|
time.Now(),
|
|
|
|
time.Time{},
|
|
|
|
time.Time{},
|
|
|
|
time.Time{},
|
|
|
|
time.Time{},
|
|
|
|
time.Time{},
|
|
|
|
time.Time{},
|
|
|
|
)
|
|
|
|
require.NoError(tb, err)
|
|
|
|
|
|
|
|
return s
|
|
|
|
}
|