github.com/s7techlab/cckit@v0.10.5/testing/expect/event.go (about) 1 package expect 2 3 import ( 4 "github.com/hyperledger/fabric-protos-go/peer" 5 g "github.com/onsi/gomega" 6 7 "github.com/s7techlab/cckit/convert" 8 "github.com/s7techlab/cckit/state/mapping" 9 "github.com/s7techlab/cckit/testing/gomega" 10 ) 11 12 // EventIs expects ChaincodeEvent name is equal to expectName and event payload can be marshaled to expectPayload 13 func EventIs(event *peer.ChaincodeEvent, expectName string, expectPayload interface{}) interface{} { 14 g.Expect(event.EventName).To(g.Equal(expectName), `event name not match`) 15 16 return EventPayloadIs(event, expectPayload) 17 } 18 19 // EventStringerEqual expects ChaincodeEvent name is equal to expectName and 20 // event payload String() equal expectPayload String() 21 func EventStringerEqual(event *peer.ChaincodeEvent, expectName string, expectPayload interface{}) { 22 payload := EventIs(event, expectName, expectPayload) 23 24 g.Expect(payload).To(gomega.StringerEqual(expectPayload)) 25 } 26 27 // EventPayloadIs expects peer.ChaincodeEvent payload can be marshaled to 28 // target interface{} and returns converted value 29 func EventPayloadIs(event *peer.ChaincodeEvent, target interface{}) interface{} { 30 g.Expect(event).NotTo(g.BeNil()) 31 data, err := convert.FromBytes(event.Payload, target) 32 description := `` 33 if err != nil { 34 description = err.Error() 35 } 36 g.Expect(err).To(g.BeNil(), description) 37 return data 38 } 39 40 // EventEqual expects that *peer.ChaincodeEvent stringer equal to mapping.Event 41 func EventEqual(event *peer.ChaincodeEvent, expected *mapping.Event) { 42 EventStringerEqual(event, expected.Name, expected.Payload) 43 } 44 45 // EventPayloadEqual 46 func EventPayloadEqual(event *peer.ChaincodeEvent, expectedPayload interface{}) { 47 EventEqual(event, mapping.EventFromPayload(expectedPayload)) 48 }