package client import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestNormalizeName(t *testing.T) { names := map[string]string{ "name": "name", " name\t": "name", "name second": "name second", "name\t second": "name second", "name_second": "name_second", "name-second": "name-second", "name123": "name123", "Name One - Two": "Name One - Two", "Name, Inc.": "Name, Inc.", "Namer - Two": "Namer - Two", "Name (Hello One)": "Name (Hello One)", "Name (Hello One) Bye": "Name (Hello One) Bye", } for key, value := range names { err := normalizeName(&key) require.NoError(t, err) assert.Equal(t, value, key) } name := "" err := normalizeName(&name) assert.Error(t, err) } func TestNormalizeCanSyncUpdate(t *testing.T) { c := Client{ ID: "EXAMPLE", CanSync: true, } c.NormalizeCanSyncUpdate(nil) var val *bool c.NormalizeCanSyncUpdate(&val) assert.Nil(t, val) v := true val = &v c.NormalizeCanSyncUpdate(&val) assert.Nil(t, val) v = false val = &v c.NormalizeCanSyncUpdate(&val) assert.NotNil(t, *val) } func TestNormalizeNameUpdate(t *testing.T) { c := Client{ ID: "EXAMPLE", Name: "example_name", } err := c.NormalizeNameUpdate(nil) require.NoError(t, err) v := "update_name" val := &v err = c.NormalizeNameUpdate(&val) require.NoError(t, err) assert.NotNil(t, val) assert.Equal(t, "update_name", *val) v = c.Name val = &v err = c.NormalizeNameUpdate(&val) require.NoError(t, err) assert.Nil(t, val) v = "###" val = &v err = c.NormalizeNameUpdate(&val) assert.Error(t, err) }