@@ -15,6 +15,8 @@ import (
15
15
"github.com/hyperledger/fabric/discovery/cmd"
16
16
"github.com/hyperledger/fabric/discovery/cmd/mocks"
17
17
discprotos "github.com/hyperledger/fabric/protos/discovery"
18
+ "github.com/hyperledger/fabric/protos/msp"
19
+ "github.com/hyperledger/fabric/protos/utils"
18
20
"github.com/pkg/errors"
19
21
"github.com/stretchr/testify/assert"
20
22
"github.com/stretchr/testify/mock"
@@ -148,12 +150,14 @@ func TestParseEndorsementResponse(t *testing.T) {
148
150
res := & mocks.ServiceResponse {}
149
151
150
152
t .Run ("Server returns empty response" , func (t * testing.T ) {
153
+ defer buff .Reset ()
151
154
res .On ("Raw" ).Return (& discprotos.Response {}).Once ()
152
155
err := parser .ParseResponse ("mychannel" , res )
153
156
assert .Contains (t , err .Error (), "empty results" )
154
157
})
155
158
156
159
t .Run ("Server returns an error" , func (t * testing.T ) {
160
+ defer buff .Reset ()
157
161
res .On ("Raw" ).Return (& discprotos.Response {
158
162
Results : []* discprotos.QueryResult {
159
163
{
@@ -170,6 +174,7 @@ func TestParseEndorsementResponse(t *testing.T) {
170
174
})
171
175
172
176
t .Run ("Server returns a response with the wrong type" , func (t * testing.T ) {
177
+ defer buff .Reset ()
173
178
res .On ("Raw" ).Return (& discprotos.Response {
174
179
Results : []* discprotos.QueryResult {
175
180
{
@@ -186,6 +191,7 @@ func TestParseEndorsementResponse(t *testing.T) {
186
191
})
187
192
188
193
t .Run ("Server returns a proper response" , func (t * testing.T ) {
194
+ defer buff .Reset ()
189
195
res .On ("Raw" ).Return (& discprotos.Response {
190
196
Results : []* discprotos.QueryResult {
191
197
{
@@ -195,18 +201,23 @@ func TestParseEndorsementResponse(t *testing.T) {
195
201
}).Once ()
196
202
err := parser .ParseResponse ("mychannel" , res )
197
203
assert .NoError (t , err )
204
+ assert .Equal (t , expectedEndorsersOutput , buff .String ())
198
205
})
199
206
}
200
207
201
208
var endorsersResponse = & discprotos.QueryResult_CcQueryRes {
202
209
CcQueryRes : & discprotos.ChaincodeQueryResult {
203
210
Content : []* discprotos.EndorsementDescriptor {
204
211
{
212
+ Chaincode : "mycc" ,
205
213
EndorsersByGroups : map [string ]* discprotos.Peers {
206
214
"Org1MSP" : {
207
215
Peers : []* discprotos.Peer {
208
216
{
209
- Identity : []byte ("identity" ),
217
+ Identity : utils .MarshalOrPanic (& msp.SerializedIdentity {
218
+ Mspid : "Org1MSP" ,
219
+ IdBytes : []byte ("identity" ),
220
+ }),
210
221
StateInfo : stateInfoMessage (100 ).Envelope ,
211
222
MembershipInfo : aliveMessage (0 ).Envelope ,
212
223
},
@@ -224,3 +235,27 @@ var endorsersResponse = &discprotos.QueryResult_CcQueryRes{
224
235
},
225
236
},
226
237
}
238
+
239
+ const expectedEndorsersOutput = `[
240
+ {
241
+ "Chaincode": "mycc",
242
+ "EndorsersByGroups": {
243
+ "Org1MSP": [
244
+ {
245
+ "MSPID": "Org1MSP",
246
+ "LedgerHeight": 100,
247
+ "Endpoint": "p0",
248
+ "Identity": "identity"
249
+ }
250
+ ]
251
+ },
252
+ "Layouts": [
253
+ {
254
+ "quantities_by_group": {
255
+ "Org1MSP": 2
256
+ }
257
+ }
258
+ ]
259
+ }
260
+ ]
261
+ `
0 commit comments