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