github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/forensics/storage/util_test.go (about)

     1  package storage
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/hyperledger/burrow/storage"
     8  	"github.com/stretchr/testify/assert"
     9  	dbm "github.com/tendermint/tm-db"
    10  )
    11  
    12  func sendKVPair(ch chan<- KVPair, kvs []KVPair) {
    13  	for _, kv := range kvs {
    14  		ch <- kv
    15  	}
    16  	close(ch)
    17  }
    18  
    19  func collectIterator(it storage.KVIterator) KVPairs {
    20  	var kvp []KVPair
    21  	for it.Valid() {
    22  		kvp = append(kvp, KVPair{it.Key(), it.Value()})
    23  		it.Next()
    24  	}
    25  	return kvp
    26  }
    27  
    28  func kvPairs(kvs ...string) KVPairs {
    29  	n := len(kvs) / 2
    30  	kvp := make([]KVPair, 0, n)
    31  	for i := 0; i < 2*n; i += 2 {
    32  		kvp = append(kvp, KVPair{[]byte(kvs[i]), []byte(kvs[i+1])})
    33  	}
    34  	return kvp
    35  }
    36  
    37  func assertIteratorSorted(t *testing.T, it storage.KVIterator, reverse bool) {
    38  	prev := ""
    39  	for it.Valid() {
    40  		strKey := string(it.Key())
    41  		t.Log(strKey, "=>", string(it.Value()))
    42  		if prev == "" {
    43  			prev = strKey
    44  		}
    45  		// Assert non-decreasing sequence of keys
    46  		if reverse {
    47  			assert.False(t, strings.Compare(prev, strKey) == -1)
    48  		} else {
    49  			assert.False(t, strings.Compare(prev, strKey) == 1)
    50  		}
    51  		prev = strKey
    52  		it.Next()
    53  	}
    54  }
    55  
    56  func checkItem(t *testing.T, itr dbm.Iterator, key []byte, value []byte) {
    57  	k, v := itr.Key(), itr.Value()
    58  	assert.Exactly(t, key, k)
    59  	assert.Exactly(t, value, v)
    60  }