logwriter/logwriter_test.go
2022-05-12 19:22:55 +05:00

160 lines
2.7 KiB
Go

package logwriter
import (
"bytes"
"testing"
)
func TestBasicPrint(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Print("text")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 6 {
t.Errorf("expected 6, got %d", n)
}
if lw.newLine {
t.Error("newLine must be false")
}
}
func TestBasicPrintln(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Println("text")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 7 {
t.Errorf("expected 7, got %d", n)
}
if !lw.newLine {
t.Error("newLine must be true")
}
}
func TestBasicPrintf(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Printf("%s %d", "string", 1)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 10 {
t.Errorf("expected 10, got %d", n)
}
if lw.newLine {
t.Error("newLine must be false")
}
}
func TestWriteWithEndLine(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Write([]byte("text\n"))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 7 {
t.Errorf("expected 7, got %d", n)
}
if !lw.newLine {
t.Error("newLine must be true")
}
}
func TestWriteWithoutEndLine(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Write([]byte("text"))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 6 {
t.Errorf("expected 6, got %d", n)
}
if lw.newLine {
t.Error("newLine must be false")
}
}
func TestClose(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
_, err := lw.Write([]byte("text"))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
err = lw.Close()
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if !lw.newLine {
t.Error("newLine must be true")
}
if buf.String() != "- text\n" {
t.Errorf(`expected "- text\n", got "%s"`, buf.String())
}
}
func TestWriteMultipleLines(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Write([]byte("line1\nline2\nline3"))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 23 {
t.Errorf("expected 23, got %d", n)
}
if lw.newLine {
t.Error("newLine must be false")
}
}
func TestPrintMultipleLines(t *testing.T) {
buf := new(bytes.Buffer)
lw := New(buf)
lw.TimeFormat = "-"
n, err := lw.Print("line1\nline2\nline3")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if n != 23 {
t.Errorf("expected 23, got %d", n)
}
if lw.newLine {
t.Error("newLine must be false")
}
if buf.String() != "- line1\n- line2\n- line3" {
t.Errorf("wrong output:\n%s", buf.String())
}
}