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/service/village_test.go
Dawid Wysokiński b0bf482129
All checks were successful
continuous-integration/drone/push Build is passing
feat: add VillageConsumer (#30)
Reviewed-on: twhelp/core#30
2022-08-12 04:56:02 +00:00

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)
}
}