github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/internal/peer/gossip/deserializer_test.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package gossip
     8  
     9  import (
    10  	"fmt"
    11  	"os"
    12  	"testing"
    13  
    14  	"github.com/hechain20/hechain/bccsp/factory"
    15  	"github.com/hechain20/hechain/bccsp/sw"
    16  	"github.com/hechain20/hechain/core/config/configtest"
    17  	"github.com/hechain20/hechain/msp"
    18  	"github.com/hechain20/hechain/msp/mgmt"
    19  	"github.com/stretchr/testify/require"
    20  )
    21  
    22  func TestNewDeserializersManager(t *testing.T) {
    23  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    24  	require.NoError(t, err)
    25  	require.NotNil(t, NewDeserializersManager(mgmt.GetLocalMSP(cryptoProvider)))
    26  }
    27  
    28  func TestMspDeserializersManager_Deserialize(t *testing.T) {
    29  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    30  	require.NoError(t, err)
    31  
    32  	localMSP := mgmt.GetLocalMSP(cryptoProvider)
    33  	m := NewDeserializersManager(localMSP)
    34  
    35  	i, err := localMSP.GetDefaultSigningIdentity()
    36  	require.NoError(t, err)
    37  	raw, err := i.Serialize()
    38  	require.NoError(t, err)
    39  
    40  	i2, err := m.Deserialize(raw)
    41  	require.NoError(t, err)
    42  	require.NotNil(t, i2)
    43  	require.NotNil(t, i2.IdBytes)
    44  	require.Equal(t, m.GetLocalMSPIdentifier(), i2.Mspid)
    45  }
    46  
    47  func TestMspDeserializersManager_GetChannelDeserializers(t *testing.T) {
    48  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    49  	require.NoError(t, err)
    50  
    51  	m := NewDeserializersManager(mgmt.GetLocalMSP(cryptoProvider))
    52  
    53  	deserializers := m.GetChannelDeserializers()
    54  	require.NotNil(t, deserializers)
    55  }
    56  
    57  func TestMspDeserializersManager_GetLocalDeserializer(t *testing.T) {
    58  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    59  	require.NoError(t, err)
    60  
    61  	localMSP := mgmt.GetLocalMSP(cryptoProvider)
    62  	m := NewDeserializersManager(localMSP)
    63  
    64  	i, err := localMSP.GetDefaultSigningIdentity()
    65  	require.NoError(t, err)
    66  	raw, err := i.Serialize()
    67  	require.NoError(t, err)
    68  
    69  	i2, err := m.GetLocalDeserializer().DeserializeIdentity(raw)
    70  	require.NoError(t, err)
    71  	require.NotNil(t, i2)
    72  	require.Equal(t, m.GetLocalMSPIdentifier(), i2.GetMSPIdentifier())
    73  }
    74  
    75  func TestMain(m *testing.M) {
    76  	mspDir := configtest.GetDevMspDir()
    77  
    78  	testConf, err := msp.GetLocalMspConfig(mspDir, nil, "SampleOrg")
    79  	if err != nil {
    80  		fmt.Printf("Setup should have succeeded, got err %s instead", err)
    81  		os.Exit(-1)
    82  	}
    83  
    84  	cryptoProvider := factory.GetDefault()
    85  
    86  	err = mgmt.GetLocalMSP(cryptoProvider).Setup(testConf)
    87  	if err != nil {
    88  		fmt.Printf("Setup for msp should have succeeded, got err %s instead", err)
    89  		os.Exit(-1)
    90  	}
    91  
    92  	mgmt.XXXSetMSPManager("foo", msp.NewMSPManager())
    93  	retVal := m.Run()
    94  	os.Exit(retVal)
    95  }