Dawid Wysokiński
b0bf482129
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: twhelp/core#30
91 lines
2.0 KiB
Go
91 lines
2.0 KiB
Go
package service_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"gitea.dwysokinski.me/twhelp/core/internal/service"
|
|
"gitea.dwysokinski.me/twhelp/core/internal/service/internal/mock"
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"gitea.dwysokinski.me/twhelp/core/internal/domain"
|
|
)
|
|
|
|
func TestVillage_Refresh(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
villages := []domain.BaseVillage{
|
|
{
|
|
ID: 1,
|
|
Name: "111",
|
|
Points: 111,
|
|
X: 111,
|
|
Y: 111,
|
|
Continent: "K11",
|
|
Bonus: 1,
|
|
PlayerID: 123,
|
|
},
|
|
{
|
|
ID: 2,
|
|
Name: "222",
|
|
Points: 222,
|
|
X: 222,
|
|
Y: 222,
|
|
Continent: "K22",
|
|
Bonus: 0,
|
|
PlayerID: 123,
|
|
},
|
|
{
|
|
ID: 3,
|
|
Name: "333",
|
|
Points: 333,
|
|
X: 333,
|
|
Y: 333,
|
|
Continent: "K33",
|
|
Bonus: 3,
|
|
PlayerID: 0,
|
|
},
|
|
{
|
|
ID: 4,
|
|
Name: "444",
|
|
Points: 444,
|
|
X: 444,
|
|
Y: 444,
|
|
Continent: "K44",
|
|
Bonus: 0,
|
|
PlayerID: 0,
|
|
},
|
|
}
|
|
client := &mock.FakeVillagesGetter{}
|
|
client.GetVillagesReturns(villages, nil)
|
|
|
|
repo := &mock.FakeVillageRepository{}
|
|
repo.CreateOrUpdateReturns(nil)
|
|
|
|
serverKey, serverURL := "pl151", "https://pl151.plemiona.pl"
|
|
|
|
res, err := service.NewVillage(repo, client).Refresh(context.Background(), serverKey, serverURL)
|
|
assert.NoError(t, err)
|
|
assert.EqualValues(t, len(villages), res.NumVillages)
|
|
assert.EqualValues(t, 2, res.NumBarbarianVillages)
|
|
assert.EqualValues(t, 2, res.NumBonusVillages)
|
|
assert.EqualValues(t, 2, res.NumPlayerVillages)
|
|
require.Equal(t, 1, client.GetVillagesCallCount())
|
|
require.Equal(t, 1, repo.CreateOrUpdateCallCount())
|
|
_, params := repo.CreateOrUpdateArgsForCall(0)
|
|
assert.Len(t, params, len(villages))
|
|
for _, village := range villages {
|
|
var villageToCreate domain.CreateVillageParams
|
|
for _, p := range params {
|
|
if p.ID == village.ID {
|
|
villageToCreate = p
|
|
break
|
|
}
|
|
}
|
|
assert.Equal(t, village, villageToCreate.BaseVillage)
|
|
assert.Equal(t, serverKey, villageToCreate.ServerKey)
|
|
}
|
|
}
|