github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/swarm/network/stream/intervals/store_test.go (about) 1 2 //此源码被清华学神尹成大魔王专业翻译分析并修改 3 //尹成QQ77025077 4 //尹成微信18510341407 5 //尹成所在QQ群721929980 6 //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 // 10 // 11 // 12 // 13 // 14 // 15 // 16 // 17 // 18 // 19 // 20 // 21 // 22 // 23 // 24 25 package intervals 26 27 import ( 28 "errors" 29 "testing" 30 31 "github.com/ethereum/go-ethereum/swarm/state" 32 ) 33 34 var ErrNotFound = errors.New("not found") 35 36 // 37 func TestInmemoryStore(t *testing.T) { 38 testStore(t, state.NewInmemoryStore()) 39 } 40 41 // 42 func testStore(t *testing.T, s state.Store) { 43 key1 := "key1" 44 i1 := NewIntervals(0) 45 i1.Add(10, 20) 46 if err := s.Put(key1, i1); err != nil { 47 t.Fatal(err) 48 } 49 i := &Intervals{} 50 err := s.Get(key1, i) 51 if err != nil { 52 t.Fatal(err) 53 } 54 if i.String() != i1.String() { 55 t.Errorf("expected interval %s, got %s", i1, i) 56 } 57 58 key2 := "key2" 59 i2 := NewIntervals(0) 60 i2.Add(10, 20) 61 if err := s.Put(key2, i2); err != nil { 62 t.Fatal(err) 63 } 64 err = s.Get(key2, i) 65 if err != nil { 66 t.Fatal(err) 67 } 68 if i.String() != i2.String() { 69 t.Errorf("expected interval %s, got %s", i2, i) 70 } 71 72 if err := s.Delete(key1); err != nil { 73 t.Fatal(err) 74 } 75 if err := s.Get(key1, i); err != state.ErrNotFound { 76 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 77 } 78 if err := s.Get(key2, i); err != nil { 79 t.Errorf("expected error %v, got %s", nil, err) 80 } 81 82 if err := s.Delete(key2); err != nil { 83 t.Fatal(err) 84 } 85 if err := s.Get(key2, i); err != state.ErrNotFound { 86 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 87 } 88 }