test: add memkeystore test
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Dec 7, 2016 at 09:02 UTC
a3c38917e2e529cb0eaffa47fe6f15e37052fd38
1 file changed
+82
keystore/memkeystore_test.go
new
+82
@@ -0,0 +1,82 @@
1
+package keystore
2
+
3
+import (
4
+ "sort"
5
+ "testing"
6
+)
7
+
8
+func TestMemKeyStoreBasics(t *testing.T) {
9
+ ks := NewMemKeystore()
10
+
11
+ l, err := ks.List()
12
+ if err != nil {
13
+ t.Fatal(err)
14
+ }
15
+
16
+ if len(l) != 0 {
17
+ t.Fatal("expected no keys")
18
+ }
19
+
20
+ k1 := privKeyOrFatal(t)
21
+ k2 := privKeyOrFatal(t)
22
+ k3 := privKeyOrFatal(t)
23
+ k4 := privKeyOrFatal(t)
24
+
25
+ err = ks.Put("foo", k1)
26
+ if err != nil {
27
+ t.Fatal(err)
28
+ }
29
+
30
+ err = ks.Put("bar", k2)
31
+ if err != nil {
32
+ t.Fatal(err)
33
+ }
34
+
35
+ l, err = ks.List()
36
+ if err != nil {
37
+ t.Fatal(err)
38
+ }
39
+
40
+ sort.Strings(l)
41
+ if l[0] != "bar" || l[1] != "foo" {
42
+ t.Fatal("wrong entries listed")
43
+ }
44
+
45
+ err = ks.Put("foo", k3)
46
+ if err == nil {
47
+ t.Fatal("should not be able to overwrite key")
48
+ }
49
+ if err := ks.Delete("bar"); err != nil {
50
+ t.Fatal(err)
51
+ }
52
+ if err := ks.Put("beep", k3); err != nil {
53
+ t.Fatal(err)
54
+ }
55
+
56
+ if err := ks.Put("boop", k4); err != nil {
57
+ t.Fatal(err)
58
+ }
59
+ if err := assertGetKey(ks, "foo", k1); err != nil {
60
+ t.Fatal(err)
61
+ }
62
+
63
+ if err := assertGetKey(ks, "beep", k3); err != nil {
64
+ t.Fatal(err)
65
+ }
66
+
67
+ if err := assertGetKey(ks, "boop", k4); err != nil {
68
+ t.Fatal(err)
69
+ }
70
+
71
+ if err := ks.Put("..///foo/", k1); err == nil {
72
+ t.Fatal("shouldnt be able to put a poorly named key")
73
+ }
74
+
75
+ if err := ks.Put("", k1); err == nil {
76
+ t.Fatal("shouldnt be able to put a key with no name")
77
+ }
78
+
79
+ if err := ks.Put(".foo", k1); err == nil {
80
+ t.Fatal("shouldnt be able to put a key with a 'hidden' name")
81
+ }
82
+}