Skip to content

Commit ac72551

Browse files
committed
[FAB-9886] Begin backfill of handler unit tests
Change-Id: I17627eea18627b0c62ff8b20a5642c933075f85b Signed-off-by: Saad Karim <skarim@us.ibm.com> Signed-off-by: Matthew Sykes <sykesmat@us.ibm.com>
1 parent 4e6f238 commit ac72551

22 files changed

+5133
-381
lines changed

Gopkg.lock

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/chaincode/chaincode_suite_test.go

+62-11
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ Copyright IBM Corp. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package chaincode
7+
package chaincode_test
88

99
import (
1010
commonledger "github.com/hyperledger/fabric/common/ledger"
11+
"github.com/hyperledger/fabric/core/chaincode"
1112
"github.com/hyperledger/fabric/core/common/ccprovider"
1213
"github.com/hyperledger/fabric/core/container/ccintf"
1314
"github.com/hyperledger/fabric/core/ledger"
14-
pb "github.com/hyperledger/fabric/protos/peer"
1515
. "github.com/onsi/ginkgo"
1616
. "github.com/onsi/gomega"
1717

@@ -40,27 +40,27 @@ type resultsIterator interface {
4040

4141
//go:generate counterfeiter -o mock/runtime.go --fake-name Runtime . chaincodeRuntime
4242
type chaincodeRuntime interface {
43-
Runtime
43+
chaincode.Runtime
4444
}
4545

4646
//go:generate counterfeiter -o mock/cert_generator.go --fake-name CertGenerator . certGenerator
4747
type certGenerator interface {
48-
CertGenerator
48+
chaincode.CertGenerator
4949
}
5050

5151
//go:generate counterfeiter -o mock/processor.go --fake-name Processor . processor
5252
type processor interface {
53-
Processor
53+
chaincode.Processor
5454
}
5555

5656
//go:generate counterfeiter -o mock/executor.go --fake-name Executor . executor
5757
type executor interface {
58-
Executor
58+
chaincode.Executor
5959
}
6060

6161
//go:generate counterfeiter -o mock/package_provider.go --fake-name PackageProvider . packageProvider
6262
type packageProvider interface {
63-
PackageProvider
63+
chaincode.PackageProvider
6464
}
6565

6666
//go:generate counterfeiter -o mock/cc_package.go --fake-name CCPackage . ccpackage
@@ -70,16 +70,67 @@ type ccpackage interface {
7070

7171
//go:generate counterfeiter -o mock/launch_registry.go --fake-name LaunchRegistry . launchRegistry
7272
type launchRegistry interface {
73-
LaunchRegistry
73+
chaincode.LaunchRegistry
7474
}
7575

7676
//go:generate counterfeiter -o mock/chaincode_stream.go --fake-name ChaincodeStream . chaincodeStream
7777
type chaincodeStream interface {
7878
ccintf.ChaincodeStream
7979
}
8080

81-
// Helpers to access unexported state.
81+
//go:generate counterfeiter -o mock/transaction_registry.go --fake-name TransactionRegistry . transactionRegistry
82+
type transactionRegistry interface {
83+
chaincode.TransactionRegistry
84+
}
85+
86+
//go:generate counterfeiter -o mock/system_chaincode_provider.go --fake-name SystemCCProvider . systemCCProvider
87+
type systemCCProvider interface {
88+
chaincode.SystemCCProvider
89+
}
90+
91+
//go:generate counterfeiter -o mock/acl_provider.go --fake-name ACLProvider . aclProvider
92+
type aclProvider interface {
93+
chaincode.ACLProvider
94+
}
95+
96+
//go:generate counterfeiter -o mock/chaincode_definition_getter.go --fake-name ChaincodeDefinitionGetter . chaincodeDefinitionGetter
97+
type chaincodeDefinitionGetter interface {
98+
chaincode.ChaincodeDefinitionGetter
99+
}
100+
101+
//go:generate counterfeiter -o mock/policy_checker.go --fake-name PolicyChecker . policyChecker
102+
type policyChecker interface {
103+
chaincode.PolicyChecker
104+
}
105+
106+
//go:generate counterfeiter -o mock/ledger_getter.go --fake-name LedgerGetter . ledgerGetter
107+
type ledgerGetter interface {
108+
chaincode.LedgerGetter
109+
}
110+
111+
//go:generate counterfeiter -o mock/peer_ledger.go --fake-name PeerLedger . peerLedger
112+
type peerLedger interface {
113+
ledger.PeerLedger
114+
}
115+
116+
// NOTE: These are getting generated into the "fake" package to avoid import cycles. We need to revisit this.
117+
118+
//go:generate counterfeiter -o fake/message_handler.go --fake-name MessageHandler . messageHandler
119+
type messageHandler interface {
120+
chaincode.MessageHandler
121+
}
122+
123+
//go:generate counterfeiter -o fake/context_registry.go --fake-name ContextRegistry . contextRegistry
124+
type contextRegistry interface {
125+
chaincode.ContextRegistry
126+
}
127+
128+
//go:generate counterfeiter -o fake/query_response_builder.go --fake-name QueryResponseBuilder . queryResponseBuilder
129+
type queryResponseBuilder interface {
130+
chaincode.QueryResponseBuilder
131+
}
82132

83-
func SetHandlerChaincodeID(h *Handler, chaincodeID *pb.ChaincodeID) {
84-
h.chaincodeID = chaincodeID
133+
//go:generate counterfeiter -o fake/registry.go --fake-name Registry . registry
134+
type registry interface {
135+
chaincode.Registry
85136
}

core/chaincode/chaincode_support.go

+14-10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/hyperledger/fabric/core/common/ccprovider"
1616
"github.com/hyperledger/fabric/core/common/sysccprovider"
1717
"github.com/hyperledger/fabric/core/container/ccintf"
18+
"github.com/hyperledger/fabric/core/peer"
1819
pb "github.com/hyperledger/fabric/protos/peer"
1920
"github.com/pkg/errors"
2021
"golang.org/x/net/context"
@@ -133,16 +134,19 @@ func (cs *ChaincodeSupport) HandleChaincodeStream(ctxt context.Context, stream c
133134
chaincodeLogger.Debugf("Current context deadline = %s, ok = %v", deadline, ok)
134135

135136
handler := &Handler{
136-
Executor: cs,
137-
Lifecycle: &Lifecycle{Executor: cs},
138-
Keepalive: cs.Keepalive,
139-
Registry: cs.HandlerRegistry,
140-
ACLProvider: cs.ACLProvider,
141-
TXContexts: NewTransactionContexts(),
142-
ActiveTransactions: NewActiveTransactions(),
143-
SystemCCProvider: cs.sccp,
144-
SystemCCVersion: util.GetSysCCVersion(),
145-
PolicyChecker: CheckInstantiationPolicyFunc(ccprovider.CheckInstantiationPolicy),
137+
Executor: cs,
138+
DefinitionGetter: &Lifecycle{Executor: cs},
139+
Keepalive: cs.Keepalive,
140+
Registry: cs.HandlerRegistry,
141+
ACLProvider: cs.ACLProvider,
142+
TXContexts: NewTransactionContexts(),
143+
ActiveTransactions: NewActiveTransactions(),
144+
SystemCCProvider: cs.sccp,
145+
SystemCCVersion: util.GetSysCCVersion(),
146+
PolicyChecker: CheckInstantiationPolicyFunc(ccprovider.CheckInstantiationPolicy),
147+
QueryResponseBuilder: &QueryResponseGenerator{MaxResultLimit: 100},
148+
UUIDGenerator: UUIDGeneratorFunc(util.GenerateUUID),
149+
LedgerGetter: peer.Default,
146150
}
147151

148152
return handler.ProcessStream(stream)

0 commit comments

Comments
 (0)