package frame_test import ( "bufio" "bytes" "testing" "numenor-labs.us/dsfx/internal/lib/frame" ) func TestLenPrefixedWriteTo(t *testing.T) { // Given ... buf := bytes.NewBuffer(nil) msg := []byte("Hello, World!") expectedBytesWritten := len(msg) + 2 // When ... n, err := frame.New(msg).WriteTo(buf) // Then ... if err != nil { t.Fatalf("failed to write frame: %v", err) return } if n != int64(expectedBytesWritten) { t.Fatalf("expected %d bytes written, got %d", expectedBytesWritten, n) return } if buf.Len() != expectedBytesWritten { t.Fatalf("expected %d bytes in buffer, got %d", expectedBytesWritten, buf.Len()) return } if !bytes.Equal(buf.Bytes()[2:], msg) { t.Fatalf("expected %q in buffer, got %q", msg, buf.Bytes()[2:]) return } } func TestLenPrefixedReadFrom(t *testing.T) { // Given ... msg := []byte{0x00, 0x0d} msg = append(msg, []byte("Hello, World!")...) buf := bufio.NewReader(bytes.NewBuffer(msg)) expectedBytesRead := len(msg) // When ... f := frame.New(nil) n, err := f.ReadFrom(buf) // Then ... if err != nil { t.Fatalf("failed to write frame: %v", err) return } if n != int64(expectedBytesRead) { t.Fatalf("expected %d bytes read, got %d", expectedBytesRead, n) return } if !bytes.Equal(f.Contents(), []byte("Hello, World!")) { t.Fatalf("expected %q, got %q", []byte("Hello, World!"), f.Contents()) return } }