add unit test for StringSliceReplaceElement

This commit is contained in:
Felix Kunde 2021-05-12 14:43:36 +02:00
parent 869502e721
commit c342558fb6
3 changed files with 14 additions and 7 deletions

View File

@ -83,9 +83,9 @@ func (strategy DefaultUserSyncStrategy) ProduceSyncRequests(dbUsers spec.PgUserM
userFlags := make([]string, len(dbUser.Flags))
userFlags = append(userFlags, dbUser.Flags...)
if dbUser.Deprecated {
util.StringSliceReplaceElement(&dbUser.Flags, constants.RoleFlagNoLogin, constants.RoleFlagLogin)
dbUser.Flags = util.StringSliceReplaceElement(dbUser.Flags, constants.RoleFlagNoLogin, constants.RoleFlagLogin)
} else {
util.StringSliceReplaceElement(&dbUser.Flags, constants.RoleFlagLogin, constants.RoleFlagNoLogin)
dbUser.Flags = util.StringSliceReplaceElement(dbUser.Flags, constants.RoleFlagLogin, constants.RoleFlagNoLogin)
}
if !util.IsEqualIgnoreOrder(userFlags, dbUser.Flags) {
reqs = append(reqs, spec.PgSyncUserRequest{Kind: spec.PGsyncUserAlter, User: dbUser})

View File

@ -152,16 +152,15 @@ func IsEqualIgnoreOrder(a, b []string) bool {
}
// SliceReplaceElement
func StringSliceReplaceElement(s *[]string, a, b string) *[]string {
tmp := *s
for _, str := range tmp {
func StringSliceReplaceElement(s []string, a, b string) (result []string) {
tmp := make([]string, 0, len(s))
for _, str := range s {
if str == a {
str = b
}
tmp = append(tmp, str)
}
*s = tmp
return s
return tmp
}
// SubstractStringSlices finds elements in a that are not in b and return them as a result slice.

View File

@ -166,6 +166,14 @@ func TestIsEqualIgnoreOrder(t *testing.T) {
}
}
func TestStringSliceReplaceElement(t *testing.T) {
testSlice := []string{"a", "b", "c"}
testSlice = StringSliceReplaceElement(testSlice, "b", "d")
if !SliceContains(testSlice, "d") {
t.Errorf("testSlide item not replaced: %v", testSlice)
}
}
func TestSubstractSlices(t *testing.T) {
for _, tt := range substractTest {
actualRes, actualEqual := SubstractStringSlices(tt.inA, tt.inB)