55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
/*
|
|
Copyright IBM Corp. 2017 All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package channelconfig
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/golang/protobuf/proto"
|
|
cb "github.com/hyperledger/fabric-protos-go/common"
|
|
"github.com/hyperledger/fabric/common/capabilities"
|
|
"github.com/hyperledger/fabric/protoutil"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
func TestApplicationInterface(t *testing.T) {
|
|
_ = Application((*ApplicationConfig)(nil))
|
|
}
|
|
|
|
func TestACL(t *testing.T) {
|
|
g := NewGomegaWithT(t)
|
|
cgt := &cb.ConfigGroup{
|
|
Values: map[string]*cb.ConfigValue{
|
|
ACLsKey: {
|
|
Value: protoutil.MarshalOrPanic(
|
|
ACLValues(map[string]string{}).Value(),
|
|
),
|
|
},
|
|
CapabilitiesKey: {
|
|
Value: protoutil.MarshalOrPanic(
|
|
CapabilitiesValue(map[string]bool{
|
|
capabilities.ApplicationV1_2: true,
|
|
}).Value(),
|
|
),
|
|
},
|
|
},
|
|
}
|
|
|
|
t.Run("Success", func(t *testing.T) {
|
|
cg := proto.Clone(cgt).(*cb.ConfigGroup)
|
|
_, err := NewApplicationConfig(proto.Clone(cg).(*cb.ConfigGroup), nil)
|
|
g.Expect(err).NotTo(HaveOccurred())
|
|
})
|
|
|
|
t.Run("MissingCapability", func(t *testing.T) {
|
|
cg := proto.Clone(cgt).(*cb.ConfigGroup)
|
|
delete(cg.Values, CapabilitiesKey)
|
|
_, err := NewApplicationConfig(cg, nil)
|
|
g.Expect(err).To(MatchError("ACLs may not be specified without the required capability"))
|
|
})
|
|
}
|