package game_test import ( "testing" e "github.com/iliadenisov/galaxy/pkg/error" "github.com/iliadenisov/galaxy/pkg/game" mg "github.com/iliadenisov/galaxy/pkg/model/game" "github.com/stretchr/testify/assert" ) func TestDeclarePeaceAndWarSingle(t *testing.T) { g(t, func(f func(*game.Param), g func() mg.Game) { hostRace := "race_05" opponentRace := "race_01" r, err := g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationWar, r.Relation) r, err = g().Relation(unknownRaceName, opponentRace) // TODO: test on dead race assert.ErrorContains(t, err, e.GenericErrorText(e.ErrInputUnknownHostRace)) r, err = g().Relation(hostRace, unknownRaceName) // TODO: test on dead race assert.ErrorContains(t, err, e.GenericErrorText(e.ErrInputUnknownOpponentRace)) assert.NoError(t, game.DeclarePeace(f, hostRace, opponentRace)) r, err = g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationPeace, r.Relation) assert.NoError(t, game.DeclareWar(f, hostRace, opponentRace)) r, err = g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationWar, r.Relation) }) } func TestDeclarePeaceAndWarAll(t *testing.T) { g(t, func(f func(*game.Param), g func() mg.Game) { hostRace := "race_07" for i := range testRaceCount { opponentRace := raceNum(i) if opponentRace == hostRace { continue } r, err := g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationWar, r.Relation) } assert.NoError(t, game.DeclarePeace(f, hostRace, hostRace)) for i := range testRaceCount { opponentRace := raceNum(i) if opponentRace == hostRace { continue } r, err := g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationPeace, r.Relation) } assert.NoError(t, game.DeclareWar(f, hostRace, hostRace)) for i := range testRaceCount { opponentRace := raceNum(i) if opponentRace == hostRace { continue } r, err := g().Relation(hostRace, opponentRace) assert.NoError(t, err) assert.Equal(t, mg.RelationWar, r.Relation) } }) }