github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/lang/aliases_test.go (about) 1 package lang_test 2 3 import ( 4 "testing" 5 6 "github.com/lmorg/murex/lang" 7 "github.com/lmorg/murex/test/count" 8 ) 9 10 func TestAliases(t *testing.T) { 11 count.Tests(t, 9) 12 13 a := lang.NewAliases() 14 15 dump := a.Dump() 16 if len(dump) != 0 { 17 t.Errorf("Empty aliases not equal 0 in dump: %d", len(dump)) 18 } 19 20 if a.Exists("test") { 21 t.Error("test alias appears in empty aliases") 22 } 23 24 a.Add("test", []string{"foo", "bar"}, nil) 25 26 dump = a.Dump() 27 if len(dump) != 1 { 28 t.Errorf("Alias dump not equal 1: %d", len(dump)) 29 } 30 31 if !a.Exists("test") { 32 t.Error("test alias does not appear in aliases") 33 } 34 35 s := a.Get("test") 36 if len(s) != 2 || s[0] != "foo" || s[1] != "bar" { 37 t.Errorf("Aliases not retrieved correctly: len(%v) == %d", s, len(s)) 38 } 39 40 err := a.Delete("test") 41 if err != nil { 42 t.Error(err) 43 } 44 45 dump = a.Dump() 46 if len(dump) != 0 { 47 t.Errorf("Empty aliases not equal 0 in dump: %d", len(dump)) 48 } 49 50 if a.Exists("test") { 51 t.Error("test alias appears in empty aliases") 52 } 53 } 54 55 // TestAliasArray tests what goes in is the same as what comes out 56 func TestAliasArray(t *testing.T) { 57 count.Tests(t, 1) 58 59 exp := []string{"testing", "$foo", "@bar", "foo bar"} 60 a := lang.NewAliases() 61 62 a.Add("test", exp, nil) 63 act := a.Get("test") 64 65 if len(exp) != len(act) { 66 t.Error("Array len() mismatch:") 67 t.Logf(" Expected: %d", len(exp)) 68 t.Logf(" Actual: %d", len(act)) 69 } 70 71 for i := range exp { 72 if exp[i] != act[i] { 73 t.Errorf("Array item mismatch: %d", i) 74 t.Logf(" Expected: %s", exp[i]) 75 t.Logf(" Actual: %s", act[i]) 76 } 77 } 78 }