This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
core-old/internal/domain/server_test.go
Dawid Wysokiński c545ebd7d7
All checks were successful
continuous-integration/drone/push Build is passing
refactor: rename domain.UserError -> domain.Error
2022-12-31 11:00:30 +01:00

154 lines
3.0 KiB
Go

package domain_test
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"gitea.dwysokinski.me/twhelp/core/internal/domain"
)
func TestUpdateServerParams_IsZero(t *testing.T) {
t.Parallel()
tests := []struct {
name string
params domain.UpdateServerParams
output bool
}{
{
name: "OK: Config",
params: domain.UpdateServerParams{
Config: domain.NullServerConfig{Valid: true},
},
output: false,
},
{
name: "OK: BuildingInfo",
params: domain.UpdateServerParams{
BuildingInfo: domain.NullBuildingInfo{Valid: true},
},
output: false,
},
{
name: "OK: UnitInfo",
params: domain.UpdateServerParams{
UnitInfo: domain.NullUnitInfo{Valid: true},
},
output: false,
},
{
name: "OK: NumPlayers",
params: domain.UpdateServerParams{
NumPlayers: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: PlayerDataUpdatedAt",
params: domain.UpdateServerParams{
PlayerDataUpdatedAt: time.Now(),
},
output: false,
},
{
name: "OK: NumTribes",
params: domain.UpdateServerParams{
NumTribes: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: TribeDataUpdatedAt",
params: domain.UpdateServerParams{
TribeDataUpdatedAt: time.Now(),
},
output: false,
},
{
name: "OK: NumVillages",
params: domain.UpdateServerParams{
NumVillages: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: NumPlayerVillages",
params: domain.UpdateServerParams{
NumPlayerVillages: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: NumBarbarianVillages",
params: domain.UpdateServerParams{
NumBarbarianVillages: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: NumBonusVillages",
params: domain.UpdateServerParams{
NumBonusVillages: domain.NullInt64{Valid: true},
},
output: false,
},
{
name: "OK: VillageDataUpdatedAt",
params: domain.UpdateServerParams{
VillageDataUpdatedAt: time.Now(),
},
output: false,
},
{
name: "OK: PlayerSnapshotsCreatedAt",
params: domain.UpdateServerParams{
PlayerSnapshotsCreatedAt: time.Now(),
},
output: false,
},
{
name: "OK: TribeSnapshotsCreatedAt",
params: domain.UpdateServerParams{
TribeSnapshotsCreatedAt: time.Now(),
},
output: false,
},
{
name: "OK: EnnoblementDataUpdatedAt",
params: domain.UpdateServerParams{
EnnoblementDataUpdatedAt: time.Now(),
},
output: false,
},
{
name: "OK: empty struct",
params: domain.UpdateServerParams{},
output: true,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
assert.Equal(t, tt.output, tt.params.IsZero())
})
}
}
func TestServerNotFoundError(t *testing.T) {
t.Parallel()
err := domain.ServerNotFoundError{
Key: "pl151",
}
var _ domain.Error = err
assert.Equal(t, "server (key=pl151) not found", err.Error())
assert.Equal(t, err.Error(), err.UserError())
assert.Equal(t, domain.ErrorCodeEntityNotFound, err.Code())
}