race quit, transfer state, refactor
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package controller_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
@@ -159,7 +160,7 @@ func TestBreakGroup(t *testing.T) {
|
||||
assert.Nil(t, c.ShipGroup(3).FleetID)
|
||||
}
|
||||
|
||||
func TestGiveawayGroup(t *testing.T) {
|
||||
func TestTransferGroup(t *testing.T) {
|
||||
c, g := newCache()
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, ShipType_Cruiser, R0_Planet_0_num, 11)) // group #1 (0)
|
||||
assert.NoError(t, c.CreateShips(Race_1_idx, ShipType_Cruiser, R1_Planet_1_num, 23)) // group #1 (1)
|
||||
@@ -178,25 +179,25 @@ func TestGiveawayGroup(t *testing.T) {
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_1_idx)), 1)
|
||||
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup("UnknownRace", Race_1.Name, 2, 0),
|
||||
g.TransferGroup("UnknownRace", Race_1.Name, 2, 0),
|
||||
e.GenericErrorText(e.ErrInputUnknownRace))
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup(Race_0.Name, "UnknownRace", 2, 0),
|
||||
g.TransferGroup(Race_0.Name, "UnknownRace", 2, 0),
|
||||
e.GenericErrorText(e.ErrInputUnknownRace))
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup(Race_0.Name, Race_0.Name, 2, 0),
|
||||
g.TransferGroup(Race_0.Name, Race_0.Name, 2, 0),
|
||||
e.GenericErrorText(e.ErrInputSameRace))
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup(Race_0.Name, Race_1.Name, 555, 0),
|
||||
g.TransferGroup(Race_0.Name, Race_1.Name, 555, 0),
|
||||
e.GenericErrorText(e.ErrInputEntityNotExists))
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup(Race_0.Name, Race_1.Name, 2, 18),
|
||||
g.TransferGroup(Race_0.Name, Race_1.Name, 2, 18),
|
||||
e.GenericErrorText(e.ErrBeakGroupNumberNotEnough))
|
||||
assert.ErrorContains(t,
|
||||
g.GiveawayGroup(Race_0.Name, Race_1.Name, 1, 0),
|
||||
g.TransferGroup(Race_0.Name, Race_1.Name, 1, 0),
|
||||
e.GenericErrorText(e.ErrGiveawayGroupShipsTypeNotEqual))
|
||||
|
||||
assert.NoError(t, g.GiveawayGroup(Race_0.Name, Race_1.Name, 2, 11)) // group #2 (3)
|
||||
assert.NoError(t, g.TransferGroup(Race_0.Name, Race_1.Name, 2, 11)) // group #2 (3)
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 2)
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_1_idx)), 2)
|
||||
|
||||
@@ -216,14 +217,31 @@ func TestGiveawayGroup(t *testing.T) {
|
||||
assert.Equal(t, c.ShipGroup(2).Destination, c.ShipGroup(3).Destination)
|
||||
assert.Equal(t, c.ShipGroup(2).StateInSpace, c.ShipGroup(3).StateInSpace)
|
||||
assert.Equal(t, c.ShipGroup(2).StateUpgrade, c.ShipGroup(3).StateUpgrade)
|
||||
assert.Equal(t, c.ShipGroup(2).StateTransfer, c.ShipGroup(3).StateTransfer)
|
||||
assert.Equal(t, c.ShipGroup(3).OwnerID, Race_1_ID)
|
||||
assert.Equal(t, c.ShipGroup(3).TypeID, c.MustShipClass(Race_1_idx, Race_0_Gunship).ID)
|
||||
assert.Equal(t, c.ShipGroup(3).Number, uint(11))
|
||||
assert.Nil(t, c.ShipGroup(3).FleetID)
|
||||
|
||||
assert.NoError(t, g.GiveawayGroup(Race_1.Name, Race_0.Name, 2, 11))
|
||||
assert.NoError(t, g.TransferGroup(Race_1.Name, Race_0.Name, 2, 11))
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 3)
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_1_idx)), 1)
|
||||
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Gunship, R0_Planet_0_num, 1))
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 4)
|
||||
assert.Equal(t, game.StateInOrbit, c.ShipGroup(4).State())
|
||||
assert.NoError(t, g.SendGroup(Race_0.Name, c.ShipGroup(4).Index, R0_Planet_2_num, 0))
|
||||
assert.Equal(t, game.StateLaunched, c.ShipGroup(4).State())
|
||||
assert.Equal(t, c.ShipGroup(4).OwnerID, Race_0_ID)
|
||||
|
||||
assert.NoError(t, g.TransferGroup(Race_0.Name, Race_1.Name, c.ShipGroup(4).Index, 0))
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 3)
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_1_idx)), 2)
|
||||
assert.Equal(t, game.StateTransfer, c.ShipGroup(4).State())
|
||||
assert.Equal(t, c.ShipGroup(4).OwnerID, Race_1_ID)
|
||||
assert.ErrorContains(t,
|
||||
g.TransferGroup(Race_1.Name, Race_0.Name, c.ShipGroup(4).Index, 0),
|
||||
e.GenericErrorText(e.ErrShipsBusy))
|
||||
}
|
||||
|
||||
func TestLoadCargo(t *testing.T) {
|
||||
@@ -540,3 +558,7 @@ func TestShipGroupDestroyItem(t *testing.T) {
|
||||
assert.Equal(t, float64(c.ShipGroup(0).Number)*10, c.ShipGroup(0).Load.F())
|
||||
}
|
||||
}
|
||||
|
||||
func TestState(t *testing.T) {
|
||||
assert.Equal(t, "In_Orbit", fmt.Sprintf("%s", game.StateInOrbit))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user