aboutsummaryrefslogtreecommitdiff
path: root/internal/iolimit/capped_capture_writer_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/iolimit/capped_capture_writer_test.go')
-rw-r--r--internal/iolimit/capped_capture_writer_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/iolimit/capped_capture_writer_test.go b/internal/iolimit/capped_capture_writer_test.go
new file mode 100644
index 00000000..e95d06ef
--- /dev/null
+++ b/internal/iolimit/capped_capture_writer_test.go
@@ -0,0 +1,45 @@
+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)
+ }
+}