add another 100 tests (thank you claude for making these I ain't coming up with this much shit to test)
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
package wire
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/vmihailenco/msgpack/v5"
|
||||
)
|
||||
|
||||
func TestDecodeEnvelope_ValidMessage(t *testing.T) {
|
||||
original := map[string]interface{}{
|
||||
"type": "hello",
|
||||
"id": "test-id",
|
||||
"commandType": "console",
|
||||
}
|
||||
|
||||
data, err := msgpack.Marshal(original)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to marshal: %v", err)
|
||||
}
|
||||
|
||||
decoded, err := DecodeEnvelope(data)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to decode: %v", err)
|
||||
}
|
||||
|
||||
if decoded["type"] != "hello" {
|
||||
t.Fatalf("expected type=hello, got %v", decoded["type"])
|
||||
}
|
||||
if decoded["id"] != "test-id" {
|
||||
t.Fatalf("expected id=test-id, got %v", decoded["id"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_EmptyMap(t *testing.T) {
|
||||
data, _ := msgpack.Marshal(map[string]interface{}{})
|
||||
decoded, err := DecodeEnvelope(data)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to decode empty map: %v", err)
|
||||
}
|
||||
if len(decoded) != 0 {
|
||||
t.Fatalf("expected empty map, got %v", decoded)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_InvalidData(t *testing.T) {
|
||||
_, err := DecodeEnvelope([]byte{0xFF, 0xFE, 0xFD})
|
||||
if err == nil {
|
||||
t.Fatal("expected error for invalid msgpack data")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_NestedPayload(t *testing.T) {
|
||||
original := map[string]interface{}{
|
||||
"type": "command",
|
||||
"payload": map[string]interface{}{
|
||||
"path": "/tmp/test",
|
||||
"recurse": true,
|
||||
},
|
||||
}
|
||||
|
||||
data, _ := msgpack.Marshal(original)
|
||||
decoded, err := DecodeEnvelope(data)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to decode: %v", err)
|
||||
}
|
||||
|
||||
payload, ok := decoded["payload"].(map[string]interface{})
|
||||
if !ok {
|
||||
t.Fatalf("expected payload to be a map, got %T", decoded["payload"])
|
||||
}
|
||||
if payload["path"] != "/tmp/test" {
|
||||
t.Fatalf("expected path=/tmp/test, got %v", payload["path"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_NumericValues(t *testing.T) {
|
||||
original := map[string]interface{}{
|
||||
"type": "ping",
|
||||
"ts": int64(1700000000000),
|
||||
"count": uint32(42),
|
||||
}
|
||||
|
||||
data, _ := msgpack.Marshal(original)
|
||||
decoded, err := DecodeEnvelope(data)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to decode: %v", err)
|
||||
}
|
||||
|
||||
if decoded["type"] != "ping" {
|
||||
t.Fatalf("expected type=ping, got %v", decoded["type"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_NilBytes(t *testing.T) {
|
||||
_, err := DecodeEnvelope(nil)
|
||||
if err == nil {
|
||||
t.Fatal("expected error for nil input")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecodeEnvelope_EmptyBytes(t *testing.T) {
|
||||
_, err := DecodeEnvelope([]byte{})
|
||||
if err == nil {
|
||||
t.Fatal("expected error for empty input")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user