mirror of
https://github.com/rancher/plugins.git
synced 2025-07-08 12:45:19 +00:00
186 lines
2.7 KiB
Go
186 lines
2.7 KiB
Go
package regstate
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
var testKey = "runhcs-test-test-key"
|
|
|
|
func prepTest(t *testing.T) {
|
|
err := RemoveAll(testKey, true)
|
|
if err != nil && !os.IsNotExist(err) {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestLifetime(t *testing.T) {
|
|
prepTest(t)
|
|
k, err := Open(testKey, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ids, err := k.Enumerate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(ids) != 0 {
|
|
t.Fatal("wrong count", len(ids))
|
|
}
|
|
|
|
id := "a/b/c"
|
|
key := "key"
|
|
err = k.Set(id, key, 1)
|
|
if err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
|
|
var i int
|
|
err = k.Get(id, key, &i)
|
|
if err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
|
|
err = k.Create(id, key, 2)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
ids, err = k.Enumerate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(ids) != 1 {
|
|
t.Fatal("wrong count", len(ids))
|
|
}
|
|
if ids[0] != id {
|
|
t.Fatal("wrong value", ids[0])
|
|
}
|
|
|
|
err = k.Get(id, key, &i)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if i != 2 {
|
|
t.Fatal("got wrong value", i)
|
|
}
|
|
|
|
err = k.Set(id, key, 3)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = k.Get(id, key, &i)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if i != 3 {
|
|
t.Fatal("got wrong value", i)
|
|
}
|
|
|
|
err = k.Remove(id)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = k.Remove(id)
|
|
if err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
|
|
ids, err = k.Enumerate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(ids) != 0 {
|
|
t.Fatal("wrong count", len(ids))
|
|
}
|
|
}
|
|
|
|
func TestBool(t *testing.T) {
|
|
prepTest(t)
|
|
k, err := Open(testKey, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
id := "x"
|
|
key := "y"
|
|
err = k.Create(id, key, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
b := false
|
|
err = k.Get(id, key, &b)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !b {
|
|
t.Fatal("value did not marshal correctly")
|
|
}
|
|
}
|
|
|
|
func TestInt(t *testing.T) {
|
|
prepTest(t)
|
|
k, err := Open(testKey, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
id := "x"
|
|
key := "y"
|
|
err = k.Create(id, key, 10)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
v := 0
|
|
err = k.Get(id, key, &v)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if v != 10 {
|
|
t.Fatal("value did not marshal correctly")
|
|
}
|
|
}
|
|
|
|
func TestString(t *testing.T) {
|
|
prepTest(t)
|
|
k, err := Open(testKey, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
id := "x"
|
|
key := "y"
|
|
err = k.Create(id, key, "blah")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
v := ""
|
|
err = k.Get(id, key, &v)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if v != "blah" {
|
|
t.Fatal("value did not marshal correctly")
|
|
}
|
|
}
|
|
|
|
func TestJson(t *testing.T) {
|
|
prepTest(t)
|
|
k, err := Open(testKey, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
id := "x"
|
|
key := "y"
|
|
v := struct{ X int }{5}
|
|
err = k.Create(id, key, &v)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
v.X = 0
|
|
err = k.Get(id, key, &v)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if v.X != 5 {
|
|
t.Fatal("value did not marshal correctly: ", v)
|
|
}
|
|
}
|