github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/types/result_test.go (about) 1 package types 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 10 ) 11 12 func TestParseABCILog(t *testing.T) { 13 logs := `[{"log":"","msg_index":1,"success":true}]` 14 15 res, err := ParseABCILogs(logs) 16 require.NoError(t, err) 17 require.Len(t, res, 1) 18 require.Equal(t, res[0].Log, "") 19 require.Equal(t, res[0].MsgIndex, uint16(1)) 20 } 21 22 func TestABCIMessageLog(t *testing.T) { 23 events := Events{NewEvent("transfer", NewAttribute("sender", "foo"))} 24 msgLog := NewABCIMessageLog(0, "", events) 25 26 msgLogs := ABCIMessageLogs{msgLog} 27 bz, err := codec.Cdc.MarshalJSON(msgLogs) 28 require.NoError(t, err) 29 require.Equal(t, string(bz), msgLogs.String()) 30 } 31 32 func TestABCIMessageLogJson(t *testing.T) { 33 events := Events{NewEvent("transfer", NewAttribute("sender", "foo"))} 34 msgLog := NewABCIMessageLog(0, "", events) 35 36 tests := []ABCIMessageLogs{ 37 nil, 38 {}, 39 {msgLog}, 40 { 41 msgLog, 42 NewABCIMessageLog(1000, "log", nil), 43 NewABCIMessageLog(0, "log", Events{}), 44 NewABCIMessageLog(1000, "", 45 Events{ 46 Event{}, 47 NewEvent("", NewAttribute("", "")), 48 NewEvent(""), 49 NewEvent("type", NewAttribute("key", "value"), NewAttribute("", "")), 50 }), 51 }, 52 } 53 54 for i, msgLogs := range tests { 55 bz, err := codec.Cdc.MarshalJSON(msgLogs) 56 require.NoError(t, err) 57 58 nbz, err := msgLogs.MarshalToJson() 59 require.NoError(t, err) 60 require.EqualValues(t, bz, nbz) 61 62 t.Log(fmt.Sprintf("%d passed", i)) 63 } 64 } 65 66 func BenchmarkABCIMessageLogJson(b *testing.B) { 67 events := Events{NewEvent("transfer", NewAttribute("sender", "foo")), NewEvent("type", NewAttribute("key", "value"), NewAttribute("", ""))} 68 msgLogs := ABCIMessageLogs{NewABCIMessageLog(1000, "test log", events)} 69 b.ResetTimer() 70 71 b.Run("amino", func(b *testing.B) { 72 b.ReportAllocs() 73 for i := 0; i < b.N; i++ { 74 _, _ = codec.Cdc.MarshalJSON(msgLogs) 75 } 76 }) 77 78 b.Run("marshaller", func(b *testing.B) { 79 b.ReportAllocs() 80 for i := 0; i < b.N; i++ { 81 _, _ = msgLogs.MarshalToJson() 82 } 83 }) 84 }