Skip to content

Commit

Permalink
Add unittest of writting config block synchronously for BlockWriter
Browse files Browse the repository at this point in the history
Signed-off-by: alexzcdu <alexzcdu@tencent.com>
  • Loading branch information
alexzcdu authored and C0rWin committed Sep 30, 2021
1 parent 295853b commit d0b32ed
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions orderer/common/multichannel/blockwriter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,50 @@ func TestGoodWriteConfig(t *testing.T) {
require.Equal(t, consenterMetadata, omd.Value)
}

func TestWriteConfigSynchronously(t *testing.T) {
confSys := genesisconfig.Load(genesisconfig.SampleInsecureSoloProfile, configtest.GetDevConfigDir())
genesisBlockSys := encoder.New(confSys).GenesisBlock()

tmpdir, err := ioutil.TempDir("", "file-ledger")
require.NoError(t, err)
defer os.RemoveAll(tmpdir)

_, l := newLedgerAndFactory(tmpdir, "testchannelid", genesisBlockSys)

fakeConfig := &mock.OrdererConfig{}
fakeConfig.ConsensusTypeReturns("solo")

cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
require.NoError(t, err)

mockValidator := &mocks.ConfigTXValidator{}
mockValidator.ChannelIDReturns("testchannelid")
bw := newBlockWriter(genesisBlockSys, nil,
&mockBlockWriterSupport{
SignerSerializer: mockCrypto(),
ReadWriter: l,
ConfigTXValidator: mockValidator,
fakeConfig: fakeConfig,
bccsp: cryptoProvider,
},
)

ctx := makeConfigTxFull("testchannelid", 1)
block := protoutil.NewBlock(1, protoutil.BlockHeaderHash(genesisBlockSys.Header))
block.Data.Data = [][]byte{protoutil.MarshalOrPanic(ctx)}
consenterMetadata := []byte("foo")
bw.WriteConfigBlock(block, consenterMetadata)

cBlock, err := blockledger.GetBlockByNumber(l, block.Header.Number)
require.Nil(t, err)
require.Equal(t, block.Header, cBlock.Header)
require.Equal(t, block.Data, cBlock.Data)

omd, err := protoutil.GetConsenterMetadataFromBlock(block)
require.NoError(t, err)
require.Equal(t, consenterMetadata, omd.Value)
}

func TestMigrationWriteConfig(t *testing.T) {
confSys := genesisconfig.Load(genesisconfig.SampleInsecureSoloProfile, configtest.GetDevConfigDir())
genesisBlockSys := encoder.New(confSys).GenesisBlock()
Expand Down

0 comments on commit d0b32ed

Please sign in to comment.