github.com/ahlemtn/fabric@v2.1.1+incompatible/msp/factory_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package msp 8 9 import ( 10 "reflect" 11 "runtime" 12 "testing" 13 14 "github.com/hyperledger/fabric/bccsp/sw" 15 "github.com/stretchr/testify/assert" 16 ) 17 18 func TestNewInvalidOpts(t *testing.T) { 19 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 20 assert.NoError(t, err) 21 22 i, err := New(nil, cryptoProvider) 23 assert.Error(t, err) 24 assert.Contains(t, err.Error(), "Invalid msp.NewOpts instance. It must be either *BCCSPNewOpts or *IdemixNewOpts. It was [<nil>]") 25 assert.Nil(t, i) 26 27 i, err = New(&BCCSPNewOpts{NewBaseOpts{Version: -1}}, cryptoProvider) 28 assert.Error(t, err) 29 assert.Contains(t, err.Error(), "Invalid *BCCSPNewOpts. Version not recognized [-1]") 30 assert.Nil(t, i) 31 32 i, err = New(&IdemixNewOpts{NewBaseOpts{Version: -1}}, cryptoProvider) 33 assert.Error(t, err) 34 assert.Contains(t, err.Error(), "Invalid *IdemixNewOpts. Version not recognized [-1]") 35 assert.Nil(t, i) 36 } 37 38 func TestNew(t *testing.T) { 39 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 40 assert.NoError(t, err) 41 42 i, err := New(&BCCSPNewOpts{NewBaseOpts{Version: MSPv1_0}}, cryptoProvider) 43 assert.NoError(t, err) 44 assert.NotNil(t, i) 45 assert.Equal(t, MSPVersion(MSPv1_0), i.(*bccspmsp).version) 46 assert.Equal(t, 47 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).internalSetupFunc).Pointer()).Name(), 48 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).setupV1).Pointer()).Name(), 49 ) 50 assert.Equal(t, 51 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).internalValidateIdentityOusFunc).Pointer()).Name(), 52 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).validateIdentityOUsV1).Pointer()).Name(), 53 ) 54 55 i, err = New(&BCCSPNewOpts{NewBaseOpts{Version: MSPv1_1}}, cryptoProvider) 56 assert.NoError(t, err) 57 assert.NotNil(t, i) 58 assert.Equal(t, MSPVersion(MSPv1_1), i.(*bccspmsp).version) 59 assert.Equal(t, 60 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).internalSetupFunc).Pointer()).Name(), 61 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).setupV11).Pointer()).Name(), 62 ) 63 assert.Equal(t, 64 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).internalValidateIdentityOusFunc).Pointer()).Name(), 65 runtime.FuncForPC(reflect.ValueOf(i.(*bccspmsp).validateIdentityOUsV11).Pointer()).Name(), 66 ) 67 68 i, err = New(&IdemixNewOpts{NewBaseOpts{Version: MSPv1_0}}, cryptoProvider) 69 assert.Error(t, err) 70 assert.Nil(t, i) 71 assert.Contains(t, err.Error(), "Invalid *IdemixNewOpts. Version not recognized [0]") 72 73 i, err = New(&IdemixNewOpts{NewBaseOpts{Version: MSPv1_1}}, cryptoProvider) 74 assert.NoError(t, err) 75 assert.NotNil(t, i) 76 }