@@ -13,16 +13,11 @@ import (
1313
1414 "github.com/hyperledger/fabric-protos-go/peer"
1515 "github.com/hyperledger/fabric/core/ledger"
16- "github.com/hyperledger/fabric/internal/pkg/gateway/commit /mocks"
16+ "github.com/hyperledger/fabric/internal/pkg/gateway/ledger /mocks"
1717 "github.com/pkg/errors"
1818 "github.com/stretchr/testify/require"
1919)
2020
21- //go:generate counterfeiter -o mocks/queryprovider.go --fake-name QueryProvider . queryProvider
22- type queryProvider interface { // Mimic QueryProvider to avoid circular import with generated mock
23- QueryProvider
24- }
25-
2621func TestFinder (t * testing.T ) {
2722 sendUntilDone := func (commitSend chan <- * ledger.CommitNotification , msg * ledger.CommitNotification ) chan struct {} {
2823 done := make (chan struct {})
@@ -40,35 +35,39 @@ func TestFinder(t *testing.T) {
4035 return done
4136 }
4237
43- t .Run ("passes channel name to query provider" , func (t * testing.T ) {
44- provider := & mocks.QueryProvider {}
45- provider .TransactionStatusReturns (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
38+ newMocks := func (code peer.TxValidationCode , blockNumber uint64 , err error ) (* mocks.Provider , * mocks.Ledger ) {
39+ provider , ledger := newLedgerMocks ()
40+ ledger .GetTxValidationCodeByTxIDReturns (code , blockNumber , err )
41+
42+ return provider , ledger
43+ }
44+
45+ t .Run ("passes channel name to provider" , func (t * testing.T ) {
46+ provider , _ := newMocks (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
4647 finder := NewFinder (provider , newTestNotifier (nil ))
4748
4849 finder .TransactionStatus (context .Background (), "CHANNEL" , "TX_ID" )
4950
50- require .Equal (t , 1 , provider .TransactionStatusCallCount ())
51+ require .Equal (t , 1 , provider .LedgerCallCount ())
5152
52- actual , _ := provider .TransactionStatusArgsForCall (0 )
53+ actual := provider .LedgerArgsForCall (0 )
5354 require .Equal (t , "CHANNEL" , actual )
5455 })
5556
56- t .Run ("passes transaction ID to query provider" , func (t * testing.T ) {
57- provider := & mocks.QueryProvider {}
58- provider .TransactionStatusReturns (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
57+ t .Run ("passes transaction ID to ledger" , func (t * testing.T ) {
58+ provider , ledger := newMocks (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
5959 finder := NewFinder (provider , newTestNotifier (nil ))
6060
6161 finder .TransactionStatus (context .Background (), "CHANNEL" , "TX_ID" )
6262
63- require .Equal (t , 1 , provider . TransactionStatusCallCount ())
63+ require .Equal (t , 1 , ledger . GetTxValidationCodeByTxIDCallCount ())
6464
65- _ , actual := provider . TransactionStatusArgsForCall (0 )
65+ actual := ledger . GetTxValidationCodeByTxIDArgsForCall (0 )
6666 require .Equal (t , "TX_ID" , actual )
6767 })
6868
6969 t .Run ("returns previously committed transaction status" , func (t * testing.T ) {
70- provider := & mocks.QueryProvider {}
71- provider .TransactionStatusReturns (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
70+ provider , _ := newMocks (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
7271 finder := NewFinder (provider , newTestNotifier (nil ))
7372
7473 actual , err := finder .TransactionStatus (context .Background (), "CHANNEL" , "TX_ID" )
@@ -83,8 +82,7 @@ func TestFinder(t *testing.T) {
8382 })
8483
8584 t .Run ("returns notified transaction status when no previous commit" , func (t * testing.T ) {
86- provider := & mocks.QueryProvider {}
87- provider .TransactionStatusReturns (0 , 0 , errors .New ("NOT_FOUND" ))
85+ provider , _ := newMocks (peer .TxValidationCode_MVCC_READ_CONFLICT , 101 , nil )
8886 commitSend := make (chan * ledger.CommitNotification )
8987 finder := NewFinder (provider , newTestNotifier (commitSend ))
9088
@@ -111,34 +109,16 @@ func TestFinder(t *testing.T) {
111109 })
112110
113111 t .Run ("returns error from notifier" , func (t * testing.T ) {
114- provider := & mocks.QueryProvider {}
115- provider .TransactionStatusReturns (0 , 0 , errors .New ("NOT_FOUND" ))
116- supplier := & mocks.NotificationSupplier {}
117- supplier .CommitNotificationsReturns (nil , errors .New ("MY_ERROR" ))
118- finder := NewFinder (provider , NewNotifier (supplier ))
112+ provider , ledger := newMocks (0 , 0 , errors .New ("NOT_FOUND" ))
113+ ledger .CommitNotificationsChannelReturns (nil , errors .New ("MY_ERROR" ))
114+ finder := NewFinder (provider , NewNotifier (provider ))
119115
120116 _ , err := finder .TransactionStatus (context .Background (), "CHANNEL" , "TX_ID" )
121117 require .ErrorContains (t , err , "MY_ERROR" )
122118 })
123119
124- t .Run ("passes channel name to supplier" , func (t * testing.T ) {
125- provider := & mocks.QueryProvider {}
126- provider .TransactionStatusReturns (0 , 0 , errors .New ("NOT_FOUND" ))
127- supplier := & mocks.NotificationSupplier {}
128- supplier .CommitNotificationsReturns (nil , errors .New ("MY_ERROR" ))
129- finder := NewFinder (provider , NewNotifier (supplier ))
130-
131- finder .TransactionStatus (context .Background (), "CHANNEL" , "TX_ID" )
132-
133- require .Equal (t , 1 , supplier .CommitNotificationsCallCount ())
134-
135- _ , actual := supplier .CommitNotificationsArgsForCall (0 )
136- require .Equal (t , "CHANNEL" , actual )
137- })
138-
139120 t .Run ("returns context error when context cancelled" , func (t * testing.T ) {
140- provider := & mocks.QueryProvider {}
141- provider .TransactionStatusReturns (0 , 0 , errors .New ("NOT_FOUND" ))
121+ provider , _ := newMocks (0 , 0 , errors .New ("NOT_FOUND" ))
142122 finder := NewFinder (provider , newTestNotifier (nil ))
143123
144124 ctx , cancel := context .WithCancel (context .Background ())
@@ -149,8 +129,7 @@ func TestFinder(t *testing.T) {
149129 })
150130
151131 t .Run ("returns error when notification supplier fails" , func (t * testing.T ) {
152- provider := & mocks.QueryProvider {}
153- provider .TransactionStatusReturns (0 , 0 , errors .New ("NOT_FOUND" ))
132+ provider , _ := newMocks (0 , 0 , errors .New ("NOT_FOUND" ))
154133 commitSend := make (chan * ledger.CommitNotification )
155134 close (commitSend )
156135 finder := NewFinder (provider , newTestNotifier (commitSend ))
0 commit comments