@cryptotaxi247 / kubo / commits / a3c38917e

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 +}