196 lines
5.0 KiB
Go
196 lines
5.0 KiB
Go
|
package domain_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
|
||
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain/domaintest"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestNewBaseEnnoblement(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
validBaseEnnoblement := domaintest.NewBaseEnnoblement(t)
|
||
|
|
||
|
type args struct {
|
||
|
villageID int
|
||
|
newOwnerID int
|
||
|
newTribeID int
|
||
|
oldOwnerID int
|
||
|
oldTribeID int
|
||
|
points int
|
||
|
createdAt time.Time
|
||
|
}
|
||
|
|
||
|
tests := []struct {
|
||
|
name string
|
||
|
args args
|
||
|
expectedErr error
|
||
|
}{
|
||
|
{
|
||
|
name: "OK",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: villageID < 1",
|
||
|
args: args{
|
||
|
villageID: 0,
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "villageID",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 1,
|
||
|
Current: 0,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: newOwnerID < 0",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: -1,
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "newOwnerID",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 0,
|
||
|
Current: -1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: newTribeID < 0",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: -1,
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "newTribeID",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 0,
|
||
|
Current: -1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: oldOwnerID < 0",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: -1,
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "oldOwnerID",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 0,
|
||
|
Current: -1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: oldTribeID < 0",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: -1,
|
||
|
points: validBaseEnnoblement.Points(),
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "oldTribeID",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 0,
|
||
|
Current: -1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "ERR: points < 0",
|
||
|
args: args{
|
||
|
villageID: validBaseEnnoblement.VillageID(),
|
||
|
newOwnerID: validBaseEnnoblement.NewOwnerID(),
|
||
|
newTribeID: validBaseEnnoblement.NewTribeID(),
|
||
|
oldOwnerID: validBaseEnnoblement.OldOwnerID(),
|
||
|
oldTribeID: validBaseEnnoblement.OldTribeID(),
|
||
|
points: -1,
|
||
|
createdAt: validBaseEnnoblement.CreatedAt(),
|
||
|
},
|
||
|
expectedErr: domain.ValidationError{
|
||
|
Model: "BaseEnnoblement",
|
||
|
Field: "points",
|
||
|
Err: domain.MinGreaterEqualError{
|
||
|
Min: 0,
|
||
|
Current: -1,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, tt := range tests {
|
||
|
tt := tt
|
||
|
|
||
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
res, err := domain.NewBaseEnnoblement(
|
||
|
tt.args.villageID,
|
||
|
tt.args.newOwnerID,
|
||
|
tt.args.newTribeID,
|
||
|
tt.args.oldOwnerID,
|
||
|
tt.args.oldTribeID,
|
||
|
tt.args.points,
|
||
|
tt.args.createdAt,
|
||
|
)
|
||
|
require.ErrorIs(t, err, tt.expectedErr)
|
||
|
if tt.expectedErr != nil {
|
||
|
return
|
||
|
}
|
||
|
assert.Equal(t, tt.args.villageID, res.VillageID())
|
||
|
assert.Equal(t, tt.args.newOwnerID, res.NewOwnerID())
|
||
|
assert.Equal(t, tt.args.newTribeID, res.NewTribeID())
|
||
|
assert.Equal(t, tt.args.oldOwnerID, res.OldOwnerID())
|
||
|
assert.Equal(t, tt.args.oldTribeID, res.OldTribeID())
|
||
|
assert.Equal(t, tt.args.points, res.Points())
|
||
|
assert.Equal(t, tt.args.createdAt, res.CreatedAt())
|
||
|
})
|
||
|
}
|
||
|
}
|