github.com/pvitto98/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  }