github.com/s7techlab/cckit@v0.10.5/state/state_cached_test.go (about)

     1  package state_test
     2  
     3  import (
     4  	. "github.com/onsi/ginkgo"
     5  	. "github.com/onsi/gomega"
     6  
     7  	"github.com/s7techlab/cckit/state/testdata"
     8  	testcc "github.com/s7techlab/cckit/testing"
     9  	expectcc "github.com/s7techlab/cckit/testing/expect"
    10  )
    11  
    12  const (
    13  	StateCachedChaincode = `state_cached`
    14  )
    15  
    16  var _ = Describe(`State caching`, func() {
    17  
    18  	//Create chaincode mocks
    19  	stateCachedCC := testcc.NewMockStub(StateCachedChaincode, testdata.NewStateCachedCC())
    20  
    21  	It("Read after write returns non empty entry", func() {
    22  		resp := expectcc.PayloadIs(stateCachedCC.Invoke(testdata.TxStateCachedReadAfterWrite), &testdata.Value{})
    23  		Expect(resp).To(Equal(testdata.KeyValue(testdata.Keys[0])))
    24  	})
    25  
    26  	It("Read after delete returns empty entry", func() {
    27  		resp := stateCachedCC.Invoke(testdata.TxStateCachedReadAfterDelete)
    28  		Expect(resp.Payload).To(Equal([]byte{}))
    29  	})
    30  
    31  	It("List after write returns list", func() {
    32  		resp := expectcc.PayloadIs(
    33  			stateCachedCC.Invoke(testdata.TxStateCachedListAfterWrite), &[]testdata.Value{}).([]testdata.Value)
    34  
    35  		// all key exists
    36  		Expect(resp).To(Equal([]testdata.Value{
    37  			testdata.KeyValue(testdata.Keys[0]), testdata.KeyValue(testdata.Keys[1]), testdata.KeyValue(testdata.Keys[2])}))
    38  	})
    39  
    40  	It("List after delete returns list without deleted item", func() {
    41  		resp := expectcc.PayloadIs(
    42  			stateCachedCC.Invoke(testdata.TxStateCachedListAfterDelete), &[]testdata.Value{}).([]testdata.Value)
    43  
    44  		// first key is deleted
    45  		Expect(resp).To(Equal([]testdata.Value{
    46  			testdata.KeyValue(testdata.Keys[1]), testdata.KeyValue(testdata.Keys[2])}))
    47  	})
    48  })