github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/server/util_test.go (about)

     1  package server
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec"
    10  )
    11  
    12  func TestInsertKeyJSON(t *testing.T) {
    13  	cdc := codec.New()
    14  
    15  	foo := map[string]string{"foo": "foofoo"}
    16  	bar := map[string]string{"barInner": "barbar"}
    17  
    18  	// create raw messages
    19  	bz, err := cdc.MarshalJSON(foo)
    20  	require.NoError(t, err)
    21  	fooRaw := json.RawMessage(bz)
    22  
    23  	bz, err = cdc.MarshalJSON(bar)
    24  	require.NoError(t, err)
    25  	barRaw := json.RawMessage(bz)
    26  
    27  	// make the append
    28  	appBz, err := InsertKeyJSON(cdc, fooRaw, "barOuter", barRaw)
    29  	require.NoError(t, err)
    30  
    31  	// test the append
    32  	var appended map[string]json.RawMessage
    33  	err = cdc.UnmarshalJSON(appBz, &appended)
    34  	require.NoError(t, err)
    35  
    36  	var resBar map[string]string
    37  	err = cdc.UnmarshalJSON(appended["barOuter"], &resBar)
    38  	require.NoError(t, err)
    39  
    40  	require.Equal(t, bar, resBar, "appended: %v", appended)
    41  }