github.com/stafiprotocol/go-substrate-rpc-client@v1.4.7/types/digest_item_test.go (about)

     1  // Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls
     2  //
     3  // Copyright 2020 Stafi Protocol
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //     http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  package types_test
    18  
    19  import (
    20  	"testing"
    21  
    22  	. "github.com/stafiprotocol/go-substrate-rpc-client/types"
    23  )
    24  
    25  var testDigestItem1 = DigestItem{IsOther: true, AsOther: NewBytes([]byte{0xab})}
    26  var testDigestItem2 = DigestItem{IsAuthoritiesChange: true, AsAuthoritiesChange: []AuthorityID{NewAuthorityID([32]byte{0xab}), NewAuthorityID([32]byte{0xcd})}} //nolint:lll
    27  var testDigestItem3 = DigestItem{IsChangesTrieRoot: true, AsChangesTrieRoot: NewHash([]byte{0x01, 0x02, 0x03})}
    28  
    29  func TestDigestItem_EncodeDecode(t *testing.T) {
    30  	assertRoundtrip(t, testDigestItem1)
    31  	assertRoundtrip(t, testDigestItem2)
    32  	assertRoundtrip(t, testDigestItem3)
    33  }
    34  
    35  func TestDigestItem_Encode(t *testing.T) {
    36  	assertEncode(t, []encodingAssert{
    37  		{testDigestItem1, []byte{0x00, 0x04, 0xab}},
    38  		{testDigestItem2, MustHexDecodeString("0x0108ab00000000000000000000000000000000000000000000000000000000000000cd00000000000000000000000000000000000000000000000000000000000000")}, //nolint:lll
    39  		{testDigestItem3, MustHexDecodeString("0x020102030000000000000000000000000000000000000000000000000000000000")},
    40  	})
    41  }
    42  
    43  func TestDigestItem_Decode(t *testing.T) {
    44  	assertDecode(t, []decodingAssert{
    45  		{[]byte{0x00, 0x04, 0xab}, testDigestItem1},
    46  		{MustHexDecodeString("0x0108ab00000000000000000000000000000000000000000000000000000000000000cd00000000000000000000000000000000000000000000000000000000000000"), testDigestItem2}, //nolint:lll
    47  		{MustHexDecodeString("0x020102030000000000000000000000000000000000000000000000000000000000"), testDigestItem3},
    48  	})
    49  }