keystore - keystore_test.go
1 package keystore
2
3 import (
4 "reflect"
5 "testing"
6
7 "vimagination.zapto.org/memio"
8 )
9
10 func testStore(t *testing.T, s Store) {
11 const testData = "Hello, World!"
12 var buf memio.Buffer
13 if err := s.Get("none", &buf); err != ErrUnknownKey {
14 t.Errorf("test 1: expecting error ErrUnknownKey, got %s", err)
15 } else if len(buf) > 0 {
16 t.Errorf("test 1: received data when expecting none.")
17 } else if err = s.Remove("none"); err != ErrUnknownKey {
18 t.Errorf("test 2: expecting error ErrUnknownKey, got %s", err)
19 } else if err = s.Set("key1", &buf); err != nil {
20 t.Errorf("test 3: unexpected error: %s", err)
21 } else if ss := s.Keys(); !reflect.DeepEqual(ss, []string{"key1"}) {
22 t.Errorf("test 3: expecting key in Store")
23 } else if err = s.Get("key1", &buf); err != nil {
24 t.Errorf("test 4: unexpected error: %s", err)
25 } else if len(buf) > 0 {
26 t.Errorf("test 5: received data when expecting none.")
27 } else {
28 buf = memio.Buffer(testData)
29 if err = s.Set("key2", &buf); err != nil {
30 t.Errorf("test 6: unexpected error: %s", err)
31 } else if len(buf) > 0 {
32 t.Errorf("test 6: unread data: %v", err)
33 } else if ss := s.Keys(); !reflect.DeepEqual(ss, []string{"key1", "key2"}) {
34 t.Errorf("test 6: expecting key in Store")
35 } else if err = s.Get("key2", &buf); err != nil {
36 t.Errorf("test 7: unexpected error: %s", err)
37 } else if string(buf) != testData {
38 t.Errorf("test 7: expecting to read %q, got %v", testData, buf)
39 } else if err = s.Remove("key2"); err != nil {
40 t.Errorf("test 8: unexpected error: %s", err)
41 } else if err = s.Get("key2", &buf); err != ErrUnknownKey {
42 t.Errorf("test 8: key2 not removed: %s", err)
43 }
44 }
45 }