github.com/kaituanwang/hyperledger@v2.0.1+incompatible/core/committer/txvalidator/router_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package txvalidator_test 8 9 import ( 10 "errors" 11 "testing" 12 13 "github.com/hyperledger/fabric/core/committer/txvalidator" 14 "github.com/hyperledger/fabric/core/committer/txvalidator/mocks" 15 "github.com/stretchr/testify/assert" 16 "github.com/stretchr/testify/mock" 17 ) 18 19 func TestRouter(t *testing.T) { 20 c14 := &mocks.ApplicationCapabilities{} 21 c20 := &mocks.ApplicationCapabilities{} 22 mcp := &mocks.CapabilityProvider{} 23 mv14 := &mocks.Validator{} 24 mv20 := &mocks.Validator{} 25 26 c14.On("V2_0Validation").Return(false) 27 c20.On("V2_0Validation").Return(true) 28 29 r := &txvalidator.ValidationRouter{ 30 CapabilityProvider: mcp, 31 V14Validator: mv14, 32 V20Validator: mv20, 33 } 34 35 t.Run("v14 validator returns an error", func(t *testing.T) { 36 mcp.On("Capabilities").Return(c14).Once() 37 mv14.On("Validate", mock.Anything).Return(errors.New("uh uh")).Once() 38 39 err := r.Validate(nil) 40 assert.EqualError(t, err, "uh uh") 41 }) 42 43 t.Run("v20 validator returns an error", func(t *testing.T) { 44 mcp.On("Capabilities").Return(c20).Once() 45 mv20.On("Validate", mock.Anything).Return(errors.New("uh uh")).Once() 46 47 err := r.Validate(nil) 48 assert.EqualError(t, err, "uh uh") 49 }) 50 51 t.Run("v14 validator returns an error", func(t *testing.T) { 52 mcp.On("Capabilities").Return(c14).Once() 53 mv14.On("Validate", mock.Anything).Return(nil).Once() 54 55 err := r.Validate(nil) 56 assert.NoError(t, err) 57 }) 58 59 t.Run("v20 validator returns an error", func(t *testing.T) { 60 mcp.On("Capabilities").Return(c20).Once() 61 mv20.On("Validate", mock.Anything).Return(nil).Once() 62 63 err := r.Validate(nil) 64 assert.NoError(t, err) 65 }) 66 }