Dawid Wysokiński
2a84f71f90
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: twhelp/core#117
101 lines
2.4 KiB
Go
101 lines
2.4 KiB
Go
package service_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"gitea.dwysokinski.me/twhelp/core/internal/domain"
|
|
"gitea.dwysokinski.me/twhelp/core/internal/service"
|
|
"gitea.dwysokinski.me/twhelp/core/internal/service/internal/mock"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPlayerSnapshot_Create(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
playerSvc := &mock.FakePlayerLister{}
|
|
players := []domain.PlayerWithRelations{
|
|
{
|
|
Player: domain.Player{
|
|
OpponentsDefeated: domain.OpponentsDefeated{
|
|
RankAtt: 8,
|
|
ScoreAtt: 7,
|
|
RankDef: 6,
|
|
ScoreDef: 5,
|
|
RankSup: 4,
|
|
ScoreSup: 3,
|
|
RankTotal: 2,
|
|
ScoreTotal: 1,
|
|
},
|
|
ID: 997,
|
|
Name: "name 997",
|
|
NumVillages: 5,
|
|
Points: 4,
|
|
Rank: 2,
|
|
TribeID: 1234,
|
|
ProfileURL: "profile-997",
|
|
ServerKey: "pl151",
|
|
CreatedAt: time.Now(),
|
|
},
|
|
Tribe: domain.NullTribeMeta{
|
|
Valid: true,
|
|
Tribe: domain.TribeMeta{
|
|
ID: 1234,
|
|
Name: "name 997",
|
|
Tag: "tag 997",
|
|
ProfileURL: "profile-997",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Player: domain.Player{
|
|
OpponentsDefeated: domain.OpponentsDefeated{
|
|
RankAtt: 1,
|
|
ScoreAtt: 2,
|
|
RankDef: 3,
|
|
ScoreDef: 4,
|
|
RankSup: 5,
|
|
ScoreSup: 6,
|
|
RankTotal: 7,
|
|
ScoreTotal: 8,
|
|
},
|
|
ID: 998,
|
|
Name: "name 998",
|
|
NumVillages: 2,
|
|
Points: 3,
|
|
Rank: 4,
|
|
TribeID: 0,
|
|
ProfileURL: "profile-998",
|
|
ServerKey: "pl151",
|
|
CreatedAt: time.Now(),
|
|
},
|
|
Tribe: domain.NullTribeMeta{
|
|
Valid: false,
|
|
},
|
|
},
|
|
}
|
|
playerSvc.ListReturns(players, 0, nil)
|
|
|
|
repo := &mock.FakePlayerSnapshotRepository{}
|
|
repo.CreateReturns(nil)
|
|
|
|
date := time.Now()
|
|
assert.NoError(t, service.NewPlayerSnapshot(repo, playerSvc).Create(context.Background(), "pl151", date))
|
|
|
|
require.Equal(t, 1, repo.CreateCallCount())
|
|
_, params := repo.CreateArgsForCall(0)
|
|
assert.Len(t, params, len(players))
|
|
for i, p := range players {
|
|
assert.Equal(t, p.OpponentsDefeated, params[i].OpponentsDefeated)
|
|
assert.Equal(t, p.ID, params[i].PlayerID)
|
|
assert.Equal(t, p.NumVillages, params[i].NumVillages)
|
|
assert.Equal(t, p.Points, params[i].Points)
|
|
assert.Equal(t, p.Rank, params[i].Rank)
|
|
assert.Equal(t, p.TribeID, params[i].TribeID)
|
|
assert.Equal(t, p.ServerKey, params[i].ServerKey)
|
|
assert.Equal(t, date, params[i].Date)
|
|
}
|
|
}
|