forked from hyperledger/fabric
-
Notifications
You must be signed in to change notification settings - Fork 0
/
support.go
94 lines (78 loc) · 3.3 KB
/
support.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package endorser
import (
"github.com/hyperledger/fabric/common/channelconfig"
"github.com/hyperledger/fabric/common/resourcesconfig"
"github.com/hyperledger/fabric/core/ledger"
mc "github.com/hyperledger/fabric/core/mocks/ccprovider"
"github.com/hyperledger/fabric/protos/common"
pb "github.com/hyperledger/fabric/protos/peer"
"golang.org/x/net/context"
)
type MockSupport struct {
IsSysCCAndNotInvokableExternalRv bool
IsSysCCRv bool
ExecuteCDSResp *pb.Response
ExecuteCDSEvent *pb.ChaincodeEvent
ExecuteCDSError error
ExecuteResp *pb.Response
ExecuteEvent *pb.ChaincodeEvent
ExecuteError error
ChaincodeDefinitionRv resourcesconfig.ChaincodeDefinition
ChaincodeDefinitionError error
GetTxSimulatorRv *mc.MockTxSim
GetTxSimulatorErr error
CheckInstantiationPolicyError error
GetTransactionByIDErr error
CheckACLErr error
SysCCMap map[string]struct{}
IsJavaRV bool
IsJavaErr error
GetApplicationConfigRv channelconfig.Application
GetApplicationConfigBoolRv bool
}
func (s *MockSupport) IsSysCCAndNotInvokableExternal(name string) bool {
return s.IsSysCCAndNotInvokableExternalRv
}
func (s *MockSupport) GetTxSimulator(ledgername string, txid string) (ledger.TxSimulator, error) {
return s.GetTxSimulatorRv, s.GetTxSimulatorErr
}
func (s *MockSupport) GetHistoryQueryExecutor(ledgername string) (ledger.HistoryQueryExecutor, error) {
return nil, nil
}
func (s *MockSupport) GetTransactionByID(chid, txID string) (*pb.ProcessedTransaction, error) {
return nil, s.GetTransactionByIDErr
}
func (s *MockSupport) IsSysCC(name string) bool {
if s.SysCCMap != nil {
_, in := s.SysCCMap[name]
return in
}
return s.IsSysCCRv
}
func (s *MockSupport) Execute(ctxt context.Context, cid, name, version, txid string, syscc bool, signedProp *pb.SignedProposal, prop *pb.Proposal, spec interface{}) (*pb.Response, *pb.ChaincodeEvent, error) {
if spec != nil {
if _, istype := spec.(*pb.ChaincodeDeploymentSpec); istype {
return s.ExecuteCDSResp, s.ExecuteCDSEvent, s.ExecuteCDSError
}
}
return s.ExecuteResp, s.ExecuteEvent, s.ExecuteError
}
func (s *MockSupport) GetChaincodeDefinition(ctx context.Context, chainID string, txid string, signedProp *pb.SignedProposal, prop *pb.Proposal, chaincodeID string, txsim ledger.TxSimulator) (resourcesconfig.ChaincodeDefinition, error) {
return s.ChaincodeDefinitionRv, s.ChaincodeDefinitionError
}
func (s *MockSupport) CheckACL(signedProp *pb.SignedProposal, chdr *common.ChannelHeader, shdr *common.SignatureHeader, hdrext *pb.ChaincodeHeaderExtension) error {
return s.CheckACLErr
}
func (s *MockSupport) IsJavaCC(buf []byte) (bool, error) {
return s.IsJavaRV, s.IsJavaErr
}
func (s *MockSupport) CheckInstantiationPolicy(name, version string, cd resourcesconfig.ChaincodeDefinition) error {
return s.CheckInstantiationPolicyError
}
func (s *MockSupport) GetApplicationConfig(cid string) (channelconfig.Application, bool) {
return s.GetApplicationConfigRv, s.GetApplicationConfigBoolRv
}