github.com/Hnampk/my-fabric@v0.0.0-20201028083322-75069da399c0/gossip/api/crypto_test.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package api
     8  
     9  import (
    10  	"encoding/pem"
    11  	"io/ioutil"
    12  	"path/filepath"
    13  	"testing"
    14  
    15  	"github.com/hyperledger/fabric-protos-go/msp"
    16  	"github.com/hyperledger/fabric/protoutil"
    17  	"github.com/stretchr/testify/assert"
    18  )
    19  
    20  func TestPeerIdentityTypeString(t *testing.T) {
    21  	certBytes, err := ioutil.ReadFile(filepath.Join("testdata", "peer.pem"))
    22  	assert.NoError(t, err)
    23  
    24  	for _, testCase := range []struct {
    25  		description string
    26  		identity    PeerIdentityType
    27  		expectedOut string
    28  	}{
    29  		{
    30  			description: "non serialized identity",
    31  			identity:    PeerIdentityType("some garbage"),
    32  			expectedOut: "non SerializedIdentity: c29tZSBnYXJiYWdl",
    33  		},
    34  		{
    35  			description: "non PEM identity",
    36  			identity: PeerIdentityType(protoutil.MarshalOrPanic(&msp.SerializedIdentity{
    37  				Mspid:   "SampleOrg",
    38  				IdBytes: []byte{1, 2, 3},
    39  			})),
    40  			expectedOut: "non PEM encoded identity: CglTYW1wbGVPcmcSAwECAw==",
    41  		},
    42  		{
    43  			description: "non x509 identity",
    44  			identity: PeerIdentityType(protoutil.MarshalOrPanic(&msp.SerializedIdentity{
    45  				Mspid: "SampleOrg",
    46  				IdBytes: pem.EncodeToMemory(&pem.Block{
    47  					Type:  "CERTIFICATE",
    48  					Bytes: []byte{1, 2, 3},
    49  				}),
    50  			})),
    51  			expectedOut: `non x509 identity: CglTYW1wbGVPcmcSOy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpBUUlECi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K`,
    52  		},
    53  		{
    54  			description: "x509 identity",
    55  			identity: PeerIdentityType(protoutil.MarshalOrPanic(&msp.SerializedIdentity{
    56  				Mspid:   "SampleOrg",
    57  				IdBytes: certBytes,
    58  			})),
    59  			expectedOut: `{"CN":"peer0.org1.example.com","Issuer-CN":"ca.org1.example.com","Issuer-L-ST-C":"[San Francisco]-[]-[US]","Issuer-OU":["COP"],"L-ST-C":"[San Francisco]-[]-[US]","MSP":"SampleOrg","OU":["COP"]}`,
    60  		},
    61  	} {
    62  		t.Run(testCase.description, func(t *testing.T) {
    63  			assert.Equal(t, testCase.identity.String(), testCase.expectedOut)
    64  		})
    65  	}
    66  
    67  }