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

Function TestSyncWriter

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

Source from the content-addressed store, hash-verified

306}
307
308func TestSyncWriter(t *testing.T) {
309 buf := &bytes.Buffer{}
310
311 // Test SyncWriter with regular io.Writer
312 syncWriter := SyncWriter(buf)
313
314 // Test Write
315 data := []byte("test data")
316 n, err := syncWriter.Write(data)
317 if err != nil {
318 t.Errorf("Write failed: %v", err)
319 }
320 if n != len(data) {
321 t.Errorf("Write returned wrong length: got %d, want %d", n, len(data))
322 }
323 if got := buf.String(); got != string(data) {
324 t.Errorf("Write wrote wrong data: got %q, want %q", got, string(data))
325 }
326
327 // Test SyncWriter with LevelWriter - use it with a logger
328 levelBuf := &bytes.Buffer{}
329 levelWriter := LevelWriterAdapter{levelBuf}
330 syncLevelWriter := SyncWriter(levelWriter)
331
332 logger := New(syncLevelWriter)
333 logger.Info().Msg("test message")
334
335 expected := `{"level":"info","message":"test message"}` + "\n"
336 if got := levelBuf.String(); got != expected {
337 t.Errorf("SyncWriter with LevelWriter failed: got %q, want %q", got, expected)
338 }
339
340 // Test SyncWriter Close with closable writer
341 closableBuf := &closableBuffer{Buffer: &bytes.Buffer{}, closed: false}
342 closableSyncWriter := SyncWriter(closableBuf)
343
344 if closeable, ok := closableSyncWriter.(io.Closer); !ok {
345 t.Error("SyncWriter should implement Close method")
346 } else {
347 err := closeable.Close()
348 if err != nil {
349 t.Errorf("Close failed: %v", err)
350 }
351 }
352 if !closableBuf.closed {
353 t.Error("Close should have been called on closable writer")
354 }
355
356 // Test SyncWriter Close with closable writer that returns error
357 errorBuf := &closableBuffer{Buffer: &bytes.Buffer{}, closed: false, closeError: io.EOF}
358 errorSyncWriter := SyncWriter(errorBuf)
359
360 if closeable, ok := errorSyncWriter.(io.Closer); !ok {
361 t.Error("SyncWriter should implement Close method")
362 } else {
363 err := closeable.Close()
364 if err != io.EOF {
365 t.Errorf("Close should have returned EOF error, got: %v", err)

Callers

nothing calls this directly

Calls 8

SyncWriterFunction · 0.85
NewFunction · 0.85
MsgMethod · 0.80
InfoMethod · 0.65
WriteMethod · 0.45
StringMethod · 0.45
ErrorMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected