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