129 lines
3.9 KiB
Go
129 lines
3.9 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package capabilities
|
|
|
|
import (
|
|
"testing"
|
|
|
|
cb "github.com/hyperledger/fabric-protos-go/common"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestApplicationV10(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{})
|
|
require.NoError(t, ap.Supported())
|
|
}
|
|
|
|
func TestApplicationV11(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV1_1: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
}
|
|
|
|
func TestApplicationV12(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV1_2: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
require.True(t, ap.V1_2Validation())
|
|
require.True(t, ap.ACLs())
|
|
require.True(t, ap.CollectionUpgrade())
|
|
require.True(t, ap.PrivateChannelData())
|
|
}
|
|
|
|
func TestApplicationV13(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV1_3: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
require.True(t, ap.V1_2Validation())
|
|
require.True(t, ap.V1_3Validation())
|
|
require.True(t, ap.KeyLevelEndorsement())
|
|
require.True(t, ap.ACLs())
|
|
require.True(t, ap.CollectionUpgrade())
|
|
require.True(t, ap.PrivateChannelData())
|
|
}
|
|
|
|
func TestApplicationV142(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV1_4_2: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
require.True(t, ap.V1_2Validation())
|
|
require.True(t, ap.V1_3Validation())
|
|
require.True(t, ap.KeyLevelEndorsement())
|
|
require.True(t, ap.ACLs())
|
|
require.True(t, ap.CollectionUpgrade())
|
|
require.True(t, ap.PrivateChannelData())
|
|
require.True(t, ap.StorePvtDataOfInvalidTx())
|
|
}
|
|
|
|
func TestApplicationV20(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV2_0: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
require.True(t, ap.V1_2Validation())
|
|
require.True(t, ap.V1_3Validation())
|
|
require.True(t, ap.V2_0Validation())
|
|
require.True(t, ap.KeyLevelEndorsement())
|
|
require.True(t, ap.ACLs())
|
|
require.True(t, ap.CollectionUpgrade())
|
|
require.True(t, ap.PrivateChannelData())
|
|
require.True(t, ap.LifecycleV20())
|
|
require.True(t, ap.StorePvtDataOfInvalidTx())
|
|
}
|
|
|
|
func TestApplicationV25(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationV2_5: {},
|
|
})
|
|
require.NoError(t, ap.Supported())
|
|
require.True(t, ap.ForbidDuplicateTXIdInBlock())
|
|
require.True(t, ap.V1_1Validation())
|
|
require.True(t, ap.V1_2Validation())
|
|
require.True(t, ap.V1_3Validation())
|
|
require.True(t, ap.V2_0Validation())
|
|
require.True(t, ap.KeyLevelEndorsement())
|
|
require.True(t, ap.ACLs())
|
|
require.True(t, ap.CollectionUpgrade())
|
|
require.True(t, ap.PrivateChannelData())
|
|
require.True(t, ap.LifecycleV20())
|
|
require.True(t, ap.StorePvtDataOfInvalidTx())
|
|
require.True(t, ap.PurgePvtData())
|
|
}
|
|
|
|
func TestApplicationPvtDataExperimental(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{
|
|
ApplicationPvtDataExperimental: {},
|
|
})
|
|
require.True(t, ap.PrivateChannelData())
|
|
}
|
|
|
|
func TestHasCapability(t *testing.T) {
|
|
ap := NewApplicationProvider(map[string]*cb.Capability{})
|
|
require.True(t, ap.HasCapability(ApplicationV1_1))
|
|
require.True(t, ap.HasCapability(ApplicationV1_2))
|
|
require.True(t, ap.HasCapability(ApplicationV1_3))
|
|
require.True(t, ap.HasCapability(ApplicationV2_0))
|
|
require.True(t, ap.HasCapability(ApplicationV2_5))
|
|
require.True(t, ap.HasCapability(ApplicationPvtDataExperimental))
|
|
require.True(t, ap.HasCapability(ApplicationResourcesTreeExperimental))
|
|
require.False(t, ap.HasCapability("default"))
|
|
}
|