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  }