Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
1.6 kB · 66 lines
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667package agentproto
import ( "bytes" "encoding/binary" "testing"
agentv1 "tangled.org/core/spindle/agentproto/gen")
func TestDecoderRejectsOversizedMessage(t *testing.T) { var tooLarge bytes.Buffer var header [4]byte binary.BigEndian.PutUint32(header[:], MaxMessageBytes+1) tooLarge.Write(header[:])
_, err := NewDecoder(&tooLarge).Decode() if err == nil { t.Fatal("expected oversized message error") }}
func TestValidation(t *testing.T) { // 1. Valid message (exactly one of the payload fields is set) validMsg := &Message{ Id: "test-1", Hello: &agentv1.Hello{ ProtocolVersion: 1, AgentVersion: "1.0", }, } if err := validator.Validate(validMsg); err != nil { t.Fatalf("expected valid message to pass validation, got: %v", err) }
// 2. Invalid message: zero payloads set invalidZeroMsg := &Message{ Id: "test-2", } if err := validator.Validate(invalidZeroMsg); err == nil { t.Fatal("expected message with zero payloads to fail validation") }
// 3. Invalid message: multiple payloads set invalidMultiMsg := &Message{ Id: "test-3", Hello: &agentv1.Hello{ ProtocolVersion: 1, }, Init: &agentv1.Init{ JobId: "job-1", }, } if err := validator.Validate(invalidMultiMsg); err == nil { t.Fatal("expected message with multiple payloads to fail validation") }}
func TestValidateProtocolVersion(t *testing.T) { if err := ValidateProtocolVersion(ProtocolVersion); err != nil { t.Fatalf("current protocol rejected: %v", err) } if err := ValidateProtocolVersion(ProtocolVersion + 1); err == nil { t.Fatal("mismatched protocol accepted") }}