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  }