diff --git a/internal/buffer/out_message_test.go b/internal/buffer/out_message_test.go index 4adce97..44bde53 100644 --- a/internal/buffer/out_message_test.go +++ b/internal/buffer/out_message_test.go @@ -119,7 +119,33 @@ func TestOutMessageAppend(t *testing.T) { } func TestOutMessageAppendString(t *testing.T) { - t.Fatal("TODO") + var om OutMessage + om.Reset() + + // Append some payload. + const wantPayload = "tacoburrito" + om.AppendString(wantPayload[:4]) + om.AppendString(wantPayload[4:]) + + // The result should be a zeroed header followed by the desired payload. + const wantLen = int(OutMessageInitialSize) + len(wantPayload) + + if got, want := om.Len(), wantLen; got != want { + t.Errorf("om.Len() = %d, want %d", got, want) + } + + b := om.Bytes() + if got, want := len(b), wantLen; got != want { + t.Fatalf("len(om.Bytes()) = %d, want %d", got, want) + } + + want := append( + make([]byte, OutMessageInitialSize), + wantPayload...) + + if !bytes.Equal(b, want) { + t.Error("messages differ") + } } func TestOutMessageShrinkTo(t *testing.T) {