package stringUtil import ( "testing" ) func TestMapToString(t *testing.T) { var data map[string]int separator1 := "," separator2 := ";" got, err := MapToString(data, separator1, separator2) if err != nil { t.Errorf("There should be no error, but now there is:%s", err) return } data1 := make([]int, 0, 4) data1 = append(data1, 1) got, err = MapToString(data1, separator1, separator2) if err == nil { t.Errorf("There should be an error, but now there is not") return } data2 := make(map[string]int, 4) data2["Jordan"] = 34 data2["Thomas"] = 6 expected1 := "Jordan,34;Thomas,6" expected2 := "Thomas,6;Jordan,34" got, err = MapToString(data2, separator1, separator2) if err != nil { t.Errorf("There should be no error, but now there is:%s", err) return } if got != expected1 && got != expected2 { t.Errorf("Expected to get:%s or %s, but got:%s", expected1, expected2, got) } } func TestMapToString2(t *testing.T) { var data map[string]int separator1 := "," separator2 := ";" got, err := MapToString2(data, separator1, separator2, valGetFunc) if err != nil { t.Errorf("There should be no error, but now there is:%s", err) return } data1 := make([]int, 0, 4) data1 = append(data1, 1) got, err = MapToString2(data1, separator1, separator2, valGetFunc) if err == nil { t.Errorf("There should be an error, but now there is not") return } data2 := make(map[string]int, 4) data2["Jordan"] = 34 data2["Thomas"] = 6 expected1 := "Jordan,34;Thomas,6" expected2 := "Thomas,6;Jordan,34" got, err = MapToString2(data2, separator1, separator2, valGetFunc) if err != nil { t.Errorf("There should be no error, but now there is:%s", err) return } if got != expected1 && got != expected2 { t.Errorf("Expected to get:%s or %s, but got:%s", expected1, expected2, got) } } func valGetFunc(val interface{}) interface{} { return val } func TestSliceToString(t *testing.T) { // Test with nil value var value interface{} = nil expected := "" got, err := SliceToString(value, ",") if err != nil { t.Errorf("There should be no error, but now got one. %s", err) return } // Test with wrong type value value = "hello" got, err = SliceToString(value, ",") if err == nil { t.Errorf("There should be an error, but now there isn't.") return } // Test with correct value value = []int{1, 2, 3, 4, 5} expected = "1,2,3,4,5" got, err = SliceToString(value, ",") if err != nil { t.Errorf("There should be no error, but now got one. %s", err) return } if got != expected { t.Errorf("Expected %s, but got %s", expected, got) return } } func TestStringListToString(t *testing.T) { list := make([]string, 0, 4) list = append(list, "Hello") list = append(list, "World") list = append(list, "Hello") list = append(list, "Apple") expected := "Hello,World,Hello,Apple" got := StringListToString(list, ",") if expected != got { t.Errorf("Expected:%s, but got:%s", expected, got) } } func TestIntListToString(t *testing.T) { list := make([]int, 0, 4) list = append(list, 1) list = append(list, 2) list = append(list, 3) list = append(list, 4) expected := "1,2,3,4" got := IntListToString(list, ",") if expected != got { t.Errorf("Expected:%s, but got:%s", expected, got) } } func TestInt64ListToString(t *testing.T) { list := make([]int64, 0, 4) list = append(list, 1) list = append(list, 2) list = append(list, 3) list = append(list, 4) expected := "1,2,3,4" got := Int64ListToString(list, ",") if expected != got { t.Errorf("Expected:%s, but got:%s", expected, got) } } func TestInt32ListToString(t *testing.T) { list := make([]int32, 0, 4) list = append(list, 1) list = append(list, 2) list = append(list, 3) list = append(list, 4) expected := "1,2,3,4" got := Int32ListToString(list, ",") if expected != got { t.Errorf("Expected:%s, but got:%s", expected, got) } }