github.com/cloudwego/dynamicgo@v0.2.6-0.20240519101509-707f41b6b834/proto/generic/path_test.go (about)

     1  package generic
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestTreeMarshal(t *testing.T) {
    10  	desc := getExample2Desc()
    11  	data := getExample2Data()
    12  	partdesc := getExamplePartialDesc()
    13  	t.Run("marshalNormal", func(t *testing.T) {
    14  		v := NewRootValue(desc, data)
    15  		tree := PathNode{
    16  			Node: v.Node,
    17  		}
    18  		tree.Load(true, opts, desc)
    19  		buf, err := tree.Marshal(opts)
    20  		require.Nil(t, err)
    21  		require.Equal(t, len(buf), len(data))
    22  	})
    23  
    24  	t.Run("marshalwithunknown", func(t *testing.T) {
    25  		v := NewRootValue(partdesc, data)
    26  		tree := PathNode{
    27  			Node: v.Node,
    28  		}
    29  		tree.Load(true, opts, partdesc)
    30  		buf, err := tree.Marshal(opts)
    31  		require.Nil(t, err)
    32  		require.Equal(t, len(buf), len(data))
    33  			
    34  	})
    35  }