github.com/kolbycrouch/elvish@v0.14.1-0.20210614162631-215b9ac1c423/pkg/store/storetest/shared_var.go (about) 1 package storetest 2 3 import ( 4 "testing" 5 6 "src.elv.sh/pkg/store" 7 ) 8 9 // TestSharedVar tests the shared variable functionality of a Store. 10 func TestSharedVar(t *testing.T, tStore store.Store) { 11 varname := "foo" 12 value1 := "lorem ipsum" 13 value2 := "o mores, o tempora" 14 15 // Getting an nonexistent variable should return ErrNoSharedVar. 16 _, err := tStore.SharedVar(varname) 17 if !matchErr(err, store.ErrNoSharedVar) { 18 t.Error("want ErrNoSharedVar, got", err) 19 } 20 21 // Setting a variable for the first time creates it. 22 err = tStore.SetSharedVar(varname, value1) 23 if err != nil { 24 t.Error("want no error, got", err) 25 } 26 v, err := tStore.SharedVar(varname) 27 if v != value1 || err != nil { 28 t.Errorf("want %q and no error, got %q and %v", value1, v, err) 29 } 30 31 // Setting an existing variable updates its value. 32 err = tStore.SetSharedVar(varname, value2) 33 if err != nil { 34 t.Error("want no error, got", err) 35 } 36 v, err = tStore.SharedVar(varname) 37 if v != value2 || err != nil { 38 t.Errorf("want %q and no error, got %q and %v", value2, v, err) 39 } 40 41 // After deleting a variable, access to it cause ErrNoSharedVar. 42 err = tStore.DelSharedVar(varname) 43 if err != nil { 44 t.Error("want no error, got", err) 45 } 46 _, err = tStore.SharedVar(varname) 47 if !matchErr(err, store.ErrNoSharedVar) { 48 t.Error("want ErrNoSharedVar, got", err) 49 } 50 }