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  }