github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/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 19:16:43</date> 10 //</624450115427373056> 11 12 13 package intervals 14 15 import ( 16 "testing" 17 18 "github.com/ethereum/go-ethereum/swarm/state" 19 ) 20 21 //测试内存存储测试InMemoryStore的基本功能。 22 func TestInmemoryStore(t *testing.T) { 23 testStore(t, state.NewInmemoryStore()) 24 } 25 26 //test store是一个帮助函数,用于测试各种存储实现。 27 func testStore(t *testing.T, s state.Store) { 28 key1 := "key1" 29 i1 := NewIntervals(0) 30 i1.Add(10, 20) 31 if err := s.Put(key1, i1); err != nil { 32 t.Fatal(err) 33 } 34 i := &Intervals{} 35 err := s.Get(key1, i) 36 if err != nil { 37 t.Fatal(err) 38 } 39 if i.String() != i1.String() { 40 t.Errorf("expected interval %s, got %s", i1, i) 41 } 42 43 key2 := "key2" 44 i2 := NewIntervals(0) 45 i2.Add(10, 20) 46 if err := s.Put(key2, i2); err != nil { 47 t.Fatal(err) 48 } 49 err = s.Get(key2, i) 50 if err != nil { 51 t.Fatal(err) 52 } 53 if i.String() != i2.String() { 54 t.Errorf("expected interval %s, got %s", i2, i) 55 } 56 57 if err := s.Delete(key1); err != nil { 58 t.Fatal(err) 59 } 60 if err := s.Get(key1, i); err != state.ErrNotFound { 61 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 62 } 63 if err := s.Get(key2, i); err != nil { 64 t.Errorf("expected error %v, got %s", nil, err) 65 } 66 67 if err := s.Delete(key2); err != nil { 68 t.Fatal(err) 69 } 70 if err := s.Get(key2, i); err != state.ErrNotFound { 71 t.Errorf("expected error %v, got %s", state.ErrNotFound, err) 72 } 73 } 74