github.com/simpleiot/simpleiot@v0.18.3/client/serial-wrapper_test.go (about)

     1  package client
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/simpleiot/simpleiot/data"
     8  )
     9  
    10  func TestSerialEncodeDecode(t *testing.T) {
    11  	seq := byte(123)
    12  	subject := "test/subject/23"
    13  	points := data.Points{
    14  		{Type: data.PointTypeDescription, Text: "node description"},
    15  		{Type: data.PointTypeValue, Value: 23.53},
    16  	}
    17  
    18  	d, err := SerialEncode(seq, subject, points)
    19  	if err != nil {
    20  		t.Fatal("Error encoding data: ", err)
    21  	}
    22  
    23  	seqD, subjectD, payload, err := SerialDecode(d)
    24  
    25  	if err != nil {
    26  		t.Error("Decode error: ", err)
    27  	}
    28  
    29  	if seq != seqD {
    30  		t.Error("sequence mismatch")
    31  	}
    32  
    33  	if subject != subjectD {
    34  		fmt.Printf("exp: %v, got: %v\n", subject, subjectD)
    35  		fmt.Println("len exp: ", len(subject))
    36  		fmt.Println("len got: ", len(subjectD))
    37  		t.Error("subject mismatch")
    38  	}
    39  
    40  	pointsD, err := data.PbDecodeSerialPoints(payload)
    41  	if err != nil {
    42  		t.Fatalf("Error decoding payload: %v", err)
    43  	}
    44  
    45  	if len(pointsD) <= 0 {
    46  		t.Fatal("did not get any points")
    47  	}
    48  
    49  	if len(points) != len(pointsD) {
    50  		t.Error("points len mismatch")
    51  		fmt.Printf("points: %+v\n", points)
    52  		fmt.Printf("pointsD: %+v\n", pointsD)
    53  	}
    54  
    55  	if points[0].Type != pointsD[0].Type {
    56  		t.Error("points[0] description mismatch")
    57  		fmt.Printf("points: %+v\n", points[0])
    58  		fmt.Printf("pointsD: %+v\n", pointsD[0])
    59  	}
    60  }
    61  
    62  func TestSerialEncodeDecodeNoContent(t *testing.T) {
    63  	seq := byte(68)
    64  
    65  	d, err := SerialEncode(seq, "", nil)
    66  	if err != nil {
    67  		t.Fatal("Error encoding: ", err)
    68  	}
    69  
    70  	seqD, _, _, err := SerialDecode(d)
    71  
    72  	if err != nil {
    73  		t.Error("Decode error: ", err)
    74  	}
    75  
    76  	if seq != seqD {
    77  		t.Error("sequence mismatch")
    78  	}
    79  }