github.com/andy2046/gopie@v0.7.0/pkg/tlv/tlv_test.go (about)

     1  package tlv
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  )
     7  
     8  func TestTLV(t *testing.T) {
     9  	v := "hola, tlv!"
    10  	typ := uint(8)
    11  	buf := new(bytes.Buffer)
    12  	codec := &Codec{TypeBytes: Bytes1, LenBytes: Bytes2}
    13  	writer := NewWriter(buf, codec)
    14  
    15  	record := &Record{
    16  		Payload: []byte(v),
    17  		Type:    typ,
    18  	}
    19  	writer.Write(record)
    20  
    21  	reader := bytes.NewReader(buf.Bytes())
    22  	tlvReader := NewReader(reader, codec)
    23  	next, _ := tlvReader.Next()
    24  
    25  	if next.Type != typ {
    26  		t.Errorf("expected %d got %d", typ, next.Type)
    27  	}
    28  
    29  	if r := string(next.Payload); r != v {
    30  		t.Errorf("expected %s got %s", v, r)
    31  	}
    32  
    33  	t.Logf("type: %d\n", next.Type)
    34  	t.Logf("payload: %s\n", string(next.Payload))
    35  }