github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/swarm/network/stream/intervals/store_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 12:09:48</date> 10 //</624342675541200896> 11 12 // 13 // 14 // 15 // 16 // 17 // 18 // 19 // 20 // 21 // 22 // 23 // 24 // 25 // 26 // 27 28 package intervals 29 30 import ( 31 "errors" 32 "testing" 33 34 "github.com/ethereum/go-ethereum/swarm/state" 35 ) 36 37 var ErrNotFound = errors.New("not found") 38 39 // 40 func TestInmemoryStore(t *testing.T) { 41 testStore(t, state.NewInmemoryStore()) 42 } 43 44 // 45 func testStore(t *testing.T, s state.Store) { 46 key1 := "key1" 47 i1 := NewIntervals(0) 48 i1.Add(10, 20) 49 if err := s.Put(key1, i1); err != nil { 50 t.Fatal(err) 51 } 52 i := &Intervals{} 53 err := s.Get(key1, i) 54 if err != nil { 55 t.Fatal(err) 56 } 57 if i.String() != i1.String() { 58 t.Errorf("expected interval %s, got %s", i1, i) 59 } 60 61 key2 := "key2" 62 i2 := NewIntervals(0) 63 i2.Add(10, 20) 64 if err := s.Put(key2, i2); err != nil { 65 t.Fatal(err) 66 } 67 err = s.Get(key2, i) 68 if err != nil { 69 t.Fatal(err) 70 } 71 if i.String() != i2.String() { 72 t.Errorf("expected interval %s, got %s", i2, i) 73 } 74 75 if err := s.Delete(key1); err != nil { 76 t.Fatal(err) 77 } 78 if err := s.Get(key1, i); err != state.ErrNotFound { 79 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 80 } 81 if err := s.Get(key2, i); err != nil { 82 t.Errorf("expected error %v, got %s", nil, err) 83 } 84 85 if err := s.Delete(key2); err != nil { 86 t.Fatal(err) 87 } 88 if err := s.Get(key2, i); err != state.ErrNotFound { 89 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 90 } 91 } 92