github.com/hoop33/elvish@v0.0.0-20160801152013-6d25485beab4/store/shared_var_test.go (about)

     1  package store
     2  
     3  import "testing"
     4  
     5  func TestSharedVar(t *testing.T) {
     6  	varname := "foo"
     7  	value1 := "lorem ipsum"
     8  	value2 := "o mores, o tempora"
     9  
    10  	// Getting an nonexistent variable should return ErrNoVar.
    11  	_, err := tStore.GetSharedVar(varname)
    12  	if err != ErrNoVar {
    13  		t.Error("want ErrNoVar, got", err)
    14  	}
    15  
    16  	// Setting a variable for the first time creates it.
    17  	err = tStore.SetSharedVar(varname, value1)
    18  	if err != nil {
    19  		t.Error("want no error, got", err)
    20  	}
    21  	v, err := tStore.GetSharedVar(varname)
    22  	if v != value1 || err != nil {
    23  		t.Errorf("want %q and no error, got %q and %v", value1, v, err)
    24  	}
    25  
    26  	// Setting an existing variable updates its value.
    27  	err = tStore.SetSharedVar(varname, value2)
    28  	if err != nil {
    29  		t.Error("want no error, got", err)
    30  	}
    31  	v, err = tStore.GetSharedVar(varname)
    32  	if v != value2 || err != nil {
    33  		t.Errorf("want %q and no error, got %q and %v", value2, v, err)
    34  	}
    35  
    36  	// After deleting a variable, access to it cause ErrNoVar.
    37  	err = tStore.DelSharedVar(varname)
    38  	if err != nil {
    39  		t.Error("want no error, got", err)
    40  	}
    41  	_, err = tStore.GetSharedVar(varname)
    42  	if err != ErrNoVar {
    43  		t.Error("want ErrNoVar, got", err)
    44  	}
    45  }