refactor: duplicate identifier error
This commit is contained in:
@@ -189,7 +189,7 @@ func (c *Cache) createFleet(ri int, name string) (int, error) {
|
||||
return 0, e.NewEntityTypeNameValidationError("%q", n)
|
||||
}
|
||||
if _, ok := c.fleetIndex(ri, n); ok {
|
||||
return 0, e.NewEntityTypeNameDuplicateError("fleet %q", n)
|
||||
return 0, e.NewEntityDuplicateIdentifierError("fleet %q", n)
|
||||
}
|
||||
fleets := slices.Clone(c.g.Fleets)
|
||||
fleets = append(fleets, game.Fleet{
|
||||
|
||||
@@ -17,7 +17,7 @@ func (c *Cache) ScienceCreate(ri int, name string, drive, weapons, shileds, carg
|
||||
return e.NewEntityTypeNameValidationError("%q", n)
|
||||
}
|
||||
if sc := slices.IndexFunc(c.g.Race[ri].Sciences, func(s game.Science) bool { return s.Name == n }); sc >= 0 {
|
||||
return e.NewEntityTypeNameDuplicateError("science %q", c.g.Race[ri].Sciences[sc].Name)
|
||||
return e.NewEntityDuplicateIdentifierError("science %q", c.g.Race[ri].Sciences[sc].Name)
|
||||
}
|
||||
|
||||
if drive < 0 {
|
||||
|
||||
@@ -37,7 +37,7 @@ func TestScienceCreate(t *testing.T) {
|
||||
e.GenericErrorText(e.ErrInputEntityTypeNameInvalid))
|
||||
assert.ErrorContains(t,
|
||||
g.ScienceCreate(Race_0.Name, first, 0.4, 0, 0.6, 0),
|
||||
e.GenericErrorText(e.ErrInputEntityTypeNameDuplicate))
|
||||
e.GenericErrorText(e.ErrInputNewEntityDuplicateIdentifier))
|
||||
assert.ErrorContains(t,
|
||||
g.ScienceCreate(Race_0.Name, second, -0.1, 0, 1.1, 0),
|
||||
e.GenericErrorText(e.ErrInputDriveValue))
|
||||
|
||||
@@ -21,7 +21,7 @@ func (c *Cache) ShipClassCreate(ri int, typeName string, drive float64, ammo int
|
||||
return e.NewEntityTypeNameValidationError("%q", n)
|
||||
}
|
||||
if st := slices.IndexFunc(c.g.Race[ri].ShipTypes, func(st game.ShipType) bool { return st.Name == typeName }); st >= 0 {
|
||||
return e.NewEntityTypeNameDuplicateError("ship type %q", c.g.Race[ri].ShipTypes[st].Name)
|
||||
return e.NewEntityDuplicateIdentifierError("ship class %q", c.g.Race[ri].ShipTypes[st].Name)
|
||||
}
|
||||
c.g.Race[ri].ShipTypes = append(c.g.Race[ri].ShipTypes, game.ShipType{
|
||||
ID: uuid.New(),
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestShipClassCreate(t *testing.T) {
|
||||
|
||||
assert.ErrorContains(t,
|
||||
g.ShipClassCreate(Race_0.Name, Race_0_Gunship, 1, 0, 0, 0, 0),
|
||||
e.GenericErrorText(e.ErrInputEntityTypeNameDuplicate))
|
||||
e.GenericErrorText(e.ErrInputNewEntityDuplicateIdentifier))
|
||||
assert.ErrorContains(t,
|
||||
g.ShipClassCreate(UnknownRace, "Drone", 1, 0, 0, 0, 0),
|
||||
e.GenericErrorText(e.ErrInputUnknownRace))
|
||||
@@ -80,7 +80,7 @@ func TestCreateShipTypeValidation(t *testing.T) {
|
||||
err := g.ShipClassCreate(race, tc.name+strconv.Itoa(i), tc.d, tc.a, tc.w, tc.s, tc.c)
|
||||
assert.NoError(t, err)
|
||||
err = g.ShipClassCreate(race, tc.name+strconv.Itoa(i), tc.d, tc.a, tc.w, tc.s, tc.c)
|
||||
assert.ErrorContains(t, err, e.GenericErrorText(e.ErrInputEntityTypeNameDuplicate))
|
||||
assert.ErrorContains(t, err, e.GenericErrorText(e.ErrInputNewEntityDuplicateIdentifier))
|
||||
} else {
|
||||
err := g.ShipClassCreate(race, tc.name, tc.d, tc.a, tc.w, tc.s, tc.c)
|
||||
assert.ErrorContains(t, err, tc.err)
|
||||
|
||||
@@ -383,6 +383,11 @@ func (c *Cache) ShipGroupBreak(ri int, groupID, newID uuid.UUID, quantity uint)
|
||||
if !ok {
|
||||
return e.NewEntityNotExistsError("group %s", groupID)
|
||||
}
|
||||
for sgi := range c.g.ShipGroups {
|
||||
if c.g.ShipGroups[sgi].ID == newID {
|
||||
return e.NewEntityDuplicateIdentifierError("group %s", newID)
|
||||
}
|
||||
}
|
||||
|
||||
if state := c.ShipGroup(sgi).State(); state != game.StateInOrbit {
|
||||
return e.NewShipsBusyError()
|
||||
|
||||
@@ -116,6 +116,9 @@ func TestShipGroupBreak(t *testing.T) {
|
||||
assert.ErrorContains(t,
|
||||
g.ShipGroupBreak(Race_0.Name, uuid.New(), uuid.New(), 1),
|
||||
e.GenericErrorText(e.ErrInputEntityNotExists))
|
||||
assert.ErrorContains(t,
|
||||
g.ShipGroupBreak(Race_0.Name, c.ShipGroup(0).ID, c.ShipGroup(0).ID, 1),
|
||||
e.GenericErrorText(e.ErrInputNewEntityDuplicateIdentifier))
|
||||
assert.ErrorContains(t,
|
||||
g.ShipGroupBreak(Race_0.Name, c.ShipGroup(0).ID, uuid.New(), 17),
|
||||
e.GenericErrorText(e.ErrBeakGroupNumberNotEnough))
|
||||
|
||||
@@ -35,7 +35,7 @@ const (
|
||||
ErrInputUnknownRelation
|
||||
ErrInputSameRace
|
||||
ErrInputEntityTypeNameInvalid
|
||||
ErrInputEntityTypeNameDuplicate
|
||||
ErrInputNewEntityDuplicateIdentifier
|
||||
ErrInputEntityTypeNameEquality
|
||||
ErrInputEntityNotExists
|
||||
ErrInputEntityNotOwned
|
||||
@@ -83,8 +83,8 @@ func GenericErrorText(code int) string {
|
||||
return "Race name must be different from your own"
|
||||
case ErrInputEntityTypeNameInvalid:
|
||||
return "Name has invalid length or symbols"
|
||||
case ErrInputEntityTypeNameDuplicate:
|
||||
return "Name already exists"
|
||||
case ErrInputNewEntityDuplicateIdentifier:
|
||||
return "Entity already exists"
|
||||
case ErrInputEntityTypeNameEquality:
|
||||
return "Names should differ"
|
||||
case ErrInputEntityNotExists:
|
||||
|
||||
@@ -16,8 +16,8 @@ func NewEntityTypeNameValidationError(arg ...any) error {
|
||||
return newGenericError(ErrInputEntityTypeNameInvalid, arg...)
|
||||
}
|
||||
|
||||
func NewEntityTypeNameDuplicateError(arg ...any) error {
|
||||
return newGenericError(ErrInputEntityTypeNameDuplicate, arg...)
|
||||
func NewEntityDuplicateIdentifierError(arg ...any) error {
|
||||
return newGenericError(ErrInputNewEntityDuplicateIdentifier, arg...)
|
||||
}
|
||||
|
||||
func NewEntityTypeNameEqualityError(arg ...any) error {
|
||||
|
||||
Reference in New Issue
Block a user