MCPcopy
hub / github.com/rs/zerolog / TestMultiLevelWriter_Close

Function TestMultiLevelWriter_Close

writer_test.go:454–486  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

452}
453
454func TestMultiLevelWriter_Close(t *testing.T) {
455 buf1 := &closableBuffer{Buffer: &bytes.Buffer{}, closed: false}
456 buf2 := &bytes.Buffer{} // non-closable
457
458 multiWriter := MultiLevelWriter(buf1, buf2)
459
460 // Cast to concrete type to access Close
461 mw := multiWriter.(multiLevelWriter)
462
463 err := mw.Close()
464 if err != nil {
465 t.Errorf("Close failed: %v", err)
466 }
467
468 if !buf1.closed {
469 t.Error("First closable writer should have been closed")
470 }
471
472 // Test multiLevelWriter Close with error
473 errorBuf1 := &closableBuffer{Buffer: &bytes.Buffer{}, closed: false, closeError: io.EOF}
474 errorBuf2 := &bytes.Buffer{} // non-closable
475
476 errorMultiWriter := MultiLevelWriter(errorBuf1, errorBuf2)
477 emw := errorMultiWriter.(multiLevelWriter)
478
479 err = emw.Close()
480 if err != io.EOF {
481 t.Errorf("Close should have returned EOF error, got: %v", err)
482 }
483 if !errorBuf1.closed {
484 t.Error("First closable writer should have been closed")
485 }
486}
487
488func TestNewTestWriter(t *testing.T) {
489 writer := NewTestWriter(t)

Callers

nothing calls this directly

Calls 3

MultiLevelWriterFunction · 0.85
CloseMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected