* chore: skeleton files for any renderer * feat: first cut at Any renderer and tests * test: Any fields, more tests, rename lookup by field * docs: make Any example match the stated spec, and the implementation. * refactor: use protojson for better test case legibility * test: use protocmp for proto equality See https://developers.google.com/protocol-buffers/docs/reference/go/faq#deepequal * refactor: use json.RawMessage instead of remarshalling * refactor: consistent pointer receiver for Textual
33 lines
756 B
Go
33 lines
756 B
Go
package valuerenderer_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"testing"
|
|
|
|
"cosmossdk.io/tx/textual/valuerenderer"
|
|
"github.com/stretchr/testify/require"
|
|
"google.golang.org/protobuf/reflect/protoreflect"
|
|
)
|
|
|
|
func TestDecJsonTestcases(t *testing.T) {
|
|
type decimalTest []string
|
|
var testcases []decimalTest
|
|
raw, err := os.ReadFile("../internal/testdata/decimals.json")
|
|
require.NoError(t, err)
|
|
err = json.Unmarshal(raw, &testcases)
|
|
require.NoError(t, err)
|
|
|
|
textual := valuerenderer.NewTextual(nil)
|
|
|
|
for _, tc := range testcases {
|
|
tc := tc
|
|
t.Run(tc[0], func(t *testing.T) {
|
|
r, err := textual.GetFieldValueRenderer(fieldDescriptorFromName("SDKDEC"))
|
|
require.NoError(t, err)
|
|
|
|
checkNumberTest(t, r, protoreflect.ValueOf(tc[0]), tc[1])
|
|
})
|
|
}
|
|
}
|