github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/amino/genproto/genproto_test.go (about) 1 package genproto 2 3 import ( 4 "reflect" 5 "testing" 6 7 sm1 "github.com/gnolang/gno/tm2/pkg/amino/genproto/example/submodule" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestBasic(t *testing.T) { 12 t.Parallel() 13 14 p3c := NewP3Context() 15 p3c.RegisterPackage(sm1.Package) 16 p3doc := P3Doc{PackageName: "test"} 17 obj := sm1.StructSM{} 18 p3message := p3c.GenerateProto3MessagePartial(&p3doc, reflect.TypeOf(obj)) 19 assert.Equal(t, `message StructSM { 20 sint64 field_a = 1 [json_name = "FieldA"]; 21 string field_b = 2 [json_name = "FieldB"]; 22 submodule2.StructSM2 field_c = 3 [json_name = "FieldC"]; 23 } 24 `, p3message.Print()) 25 26 assert.Equal(t, `syntax = "proto3"; 27 package test; 28 29 // imports 30 import "github.com/gnolang/gno/tm2/pkg/amino/genproto/example/submodule2/submodule2.proto";`, p3doc.Print()) 31 32 p3doc = p3c.GenerateProto3SchemaForTypes(sm1.Package, reflect.TypeOf(obj)) 33 assert.Equal(t, `syntax = "proto3"; 34 package submodule; 35 36 option go_package = "github.com/gnolang/gno/tm2/pkg/amino/genproto/example/submodule/pb"; 37 38 // imports 39 import "github.com/gnolang/gno/tm2/pkg/amino/genproto/example/submodule2/submodule2.proto"; 40 41 // messages 42 message StructSM { 43 sint64 field_a = 1 [json_name = "FieldA"]; 44 string field_b = 2 [json_name = "FieldB"]; 45 submodule2.StructSM2 field_c = 3 [json_name = "FieldC"]; 46 }`, p3doc.Print()) 47 }