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 })