go_study/fabric-main/common/chaincode/metadata_test.go

56 lines
1.0 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package chaincode
import (
"testing"
"github.com/hyperledger/fabric-protos-go/gossip"
"github.com/stretchr/testify/require"
)
func TestToChaincodes(t *testing.T) {
ccs := MetadataSet{
{
Name: "foo",
Version: "1.0",
},
}
require.Equal(t, []*gossip.Chaincode{
{Name: "foo", Version: "1.0"},
}, ccs.AsChaincodes())
}
func TestMetadataMapping(t *testing.T) {
mm := NewMetadataMapping()
md1 := Metadata{
Name: "cc1",
Id: []byte{1},
Version: "1.0",
Policy: []byte{1, 2, 3},
}
mm.Update(md1)
res, found := mm.Lookup("cc1")
require.Equal(t, md1, res)
require.True(t, found)
res, found = mm.Lookup("cc2")
require.Zero(t, res)
require.False(t, found)
md2 := Metadata{
Name: "cc1",
Id: []byte{1},
Version: "1.1",
Policy: []byte{2, 2, 2},
}
mm.Update(md2)
res, found = mm.Lookup("cc1")
require.True(t, found)
require.Equal(t, md2, res)
require.Equal(t, MetadataSet{md2}, mm.Aggregate())
}