cmd: add/remove route
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package game_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
e "github.com/iliadenisov/galaxy/internal/error"
|
||||
"github.com/iliadenisov/galaxy/internal/model/game"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSetRoute(t *testing.T) {
|
||||
g := newGame()
|
||||
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteMaterial)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteEmpty)
|
||||
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "COL", 0, 2))
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteMaterial)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteEmpty)
|
||||
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "MAT", 0, 2))
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteMaterial)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteEmpty)
|
||||
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "CAP", 0, 2))
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteMaterial)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteEmpty)
|
||||
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "EMP", 0, 2))
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteMaterial)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteEmpty)
|
||||
|
||||
assert.ErrorContains(t,
|
||||
g.SetRoute("UnknownRace", "COL", 0, 2),
|
||||
e.GenericErrorText(e.ErrInputUnknownRace))
|
||||
assert.ErrorContains(t,
|
||||
g.SetRoute(Race_0.Name, "IND", 0, 2),
|
||||
e.GenericErrorText(e.ErrInputCargoTypeInvalid))
|
||||
assert.ErrorContains(t,
|
||||
g.SetRoute(Race_0.Name, "COL", 500, 2),
|
||||
e.GenericErrorText(e.ErrInputEntityNotExists))
|
||||
assert.ErrorContains(t,
|
||||
g.SetRoute(Race_0.Name, "COL", 1, 2),
|
||||
e.GenericErrorText(e.ErrInputEntityNotOwned))
|
||||
assert.ErrorContains(t,
|
||||
g.SetRoute(Race_0.Name, "COL", 0, 3),
|
||||
e.GenericErrorText(e.ErrSendUnreachableDestination))
|
||||
}
|
||||
|
||||
func TestRemoveRoute(t *testing.T) {
|
||||
g := newGame()
|
||||
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "COL", 0, 2))
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "CAP", 0, 2))
|
||||
assert.NoError(t, g.SetRoute(Race_0.Name, "EMP", 2, 0))
|
||||
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
assert.Contains(t, g.MustPlanetByNumber(2).Route, game.RouteEmpty)
|
||||
|
||||
assert.NoError(t, g.RemoveRoute(Race_0.Name, "COL", 0))
|
||||
assert.NotContains(t, g.MustPlanetByNumber(0).Route, game.RouteColonist)
|
||||
assert.Contains(t, g.MustPlanetByNumber(0).Route, game.RouteCapital)
|
||||
|
||||
assert.NoError(t, g.RemoveRoute(Race_0.Name, "EMP", 2))
|
||||
assert.NotContains(t, g.MustPlanetByNumber(2).Route, game.RouteEmpty)
|
||||
|
||||
assert.ErrorContains(t,
|
||||
g.RemoveRoute("UnknownRace", "COL", 0),
|
||||
e.GenericErrorText(e.ErrInputUnknownRace))
|
||||
assert.ErrorContains(t,
|
||||
g.RemoveRoute(Race_0.Name, "IND", 0),
|
||||
e.GenericErrorText(e.ErrInputCargoTypeInvalid))
|
||||
assert.ErrorContains(t,
|
||||
g.RemoveRoute(Race_0.Name, "COL", 500),
|
||||
e.GenericErrorText(e.ErrInputEntityNotExists))
|
||||
assert.ErrorContains(t,
|
||||
g.RemoveRoute(Race_0.Name, "COL", 1),
|
||||
e.GenericErrorText(e.ErrInputEntityNotOwned))
|
||||
}
|
||||
Reference in New Issue
Block a user