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 }