Skip to content

Commit

Permalink
Insist on policy
Browse files Browse the repository at this point in the history
Signed-off-by: Yoav Tock <tock@il.ibm.com>
  • Loading branch information
tock-ibm authored and denyeart committed Jun 4, 2024
1 parent e905423 commit 62e1af9
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 10 deletions.
2 changes: 1 addition & 1 deletion core/deliverservice/deliveryclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func (d *deliverServiceImpl) StartDeliverForChannel(chainID string, ledgerInfo b
d.blockDeliverer, err = d.createBlockDelivererCFT(chainID, ledgerInfo)
case "BFT":
switch d.conf.DeliverServiceConfig.Policy {
case "cluster", "":
case "cluster":
d.blockDeliverer, err = d.createBlockDelivererBFT(chainID, ledgerInfo)
case "simple":
d.blockDeliverer, err = d.createBlockDelivererCFT(chainID, ledgerInfo)
Expand Down
40 changes: 31 additions & 9 deletions core/deliverservice/deliveryclient_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ func TestStartDeliverForChannel_BFT(t *testing.T) {
ds := NewDeliverService(&Config{
DeliverServiceConfig: &DeliverServiceConfig{
SecOpts: secOpts,
Policy: DefaultPolicy,
},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
Expand All @@ -203,9 +204,11 @@ func TestStartDeliverForChannel_BFT(t *testing.T) {

t.Run("Green Path without mutual TLS", func(t *testing.T) {
ds := NewDeliverService(&Config{
DeliverServiceConfig: &DeliverServiceConfig{},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
DeliverServiceConfig: &DeliverServiceConfig{
Policy: DefaultPolicy,
},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
}).(*deliverServiceImpl)

finalized := make(chan struct{})
Expand All @@ -227,9 +230,11 @@ func TestStartDeliverForChannel_BFT(t *testing.T) {

t.Run("Can restart for channel: Start->Stop->Start", func(t *testing.T) {
ds := NewDeliverService(&Config{
DeliverServiceConfig: &DeliverServiceConfig{},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
DeliverServiceConfig: &DeliverServiceConfig{
Policy: DefaultPolicy,
},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
}).(*deliverServiceImpl)

finalized := make(chan struct{})
Expand Down Expand Up @@ -268,9 +273,11 @@ func TestStartDeliverForChannel_BFT(t *testing.T) {
fakeLedgerInfo := fakeLedgerInfoCreator()

ds := NewDeliverService(&Config{
DeliverServiceConfig: &DeliverServiceConfig{},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
DeliverServiceConfig: &DeliverServiceConfig{
Policy: DefaultPolicy,
},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
}).(*deliverServiceImpl)

err := ds.StartDeliverForChannel("channel-id", fakeLedgerInfo, func() {})
Expand All @@ -290,6 +297,21 @@ func TestStartDeliverForChannel_BFT(t *testing.T) {
err := ds.StartDeliverForChannel("channel-id", fakeLedgerInfoCreator(), func() {})
require.EqualError(t, err, "block deliverer for channel `channel-id` is stopping")
})

t.Run("Bad policy", func(t *testing.T) {
fakeLedgerInfo := fakeLedgerInfoCreator()

ds := NewDeliverService(&Config{
DeliverServiceConfig: &DeliverServiceConfig{
Policy: "bogus",
},
ChannelConfig: channelConfigProto,
CryptoProvider: cryptoProvider,
}).(*deliverServiceImpl)

err := ds.StartDeliverForChannel("channel-id", fakeLedgerInfo, func() {})
require.EqualError(t, err, "unexpected delivey service policy: `bogus`")
})
}

func TestStopDeliverForChannel(t *testing.T) {
Expand Down

0 comments on commit 62e1af9

Please sign in to comment.