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  }