shithub: furgit

ref: df1f2fb3daa1acd25c88510f259d5535fb482126
dir: /internal/iolimit/capped_capture_writer_test.go/

View raw version
package iolimit_test

import (
	"bytes"
	"testing"

	"codeberg.org/lindenii/furgit/internal/iolimit"
)

func TestCappedCaptureWriterWithinLimit(t *testing.T) {
	t.Parallel()

	writer := iolimit.NewCappedCaptureWriter(8)

	_, _ = writer.Write([]byte("hello"))
	_, _ = writer.Write([]byte("!"))

	if got := writer.Bytes(); !bytes.Equal(got, []byte("hello!")) {
		t.Fatalf("Bytes() = %q, want %q", got, "hello!")
	}
}

func TestCappedCaptureWriterExceededLimit(t *testing.T) {
	t.Parallel()

	writer := iolimit.NewCappedCaptureWriter(4)

	_, _ = writer.Write([]byte("abcd"))
	_, _ = writer.Write([]byte("x"))

	if got := writer.Bytes(); got != nil {
		t.Fatalf("Bytes() = %q, want nil after overflow", got)
	}
}

func TestCappedCaptureWriterZeroLimit(t *testing.T) {
	t.Parallel()

	writer := iolimit.NewCappedCaptureWriter(0)

	_, _ = writer.Write([]byte("x"))
	if got := writer.Bytes(); got != nil {
		t.Fatalf("Bytes() = %q, want nil at zero limit", got)
	}
}