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) { testClient := Client{ ID: "EXAMPLE", CanSync: true, } testClient.NormalizeCanSyncUpdate(nil) var updateCanSync *bool testClient.NormalizeCanSyncUpdate(&updateCanSync) assert.Nil(t, updateCanSync) canSync := true updateCanSync = &canSync testClient.NormalizeCanSyncUpdate(&updateCanSync) assert.Nil(t, updateCanSync) canSync = false updateCanSync = &canSync testClient.NormalizeCanSyncUpdate(&updateCanSync) assert.NotNil(t, *updateCanSync) } func TestNormalizeNameUpdate(t *testing.T) { testClient := Client{ ID: "EXAMPLE", Name: "example_name", } err := testClient.NormalizeNameUpdate(nil) require.NoError(t, err) name := "update_name" updateName := &name err = testClient.NormalizeNameUpdate(&updateName) require.NoError(t, err) assert.NotNil(t, updateName) assert.Equal(t, "update_name", *updateName) name = testClient.Name updateName = &name err = testClient.NormalizeNameUpdate(&updateName) require.NoError(t, err) assert.Nil(t, updateName) name = "###" updateName = &name err = testClient.NormalizeNameUpdate(&updateName) assert.Error(t, err) }