81 lines
1.9 KiB
Go
81 lines
1.9 KiB
Go
package handlers
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
|
|
"codeark.it/Bithero-Agency-Go/logfrog-go"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestStreamLogger(t *testing.T) {
|
|
|
|
t.Run("NewStreamHandlerFile", func(t *testing.T) {
|
|
logger := logfrog.NewLogger("main", logfrog.TRACE)
|
|
|
|
t.Cleanup(func() {
|
|
os.Remove("./test.log");
|
|
})
|
|
|
|
handler, err := NewStreamHandlerFile("test.log")
|
|
assert.NoError(t, err)
|
|
|
|
logger.AddHandler(handler)
|
|
|
|
assert.NotPanics(t, func() {
|
|
logger.Info("Hello world!")
|
|
}, "logger.Info panics!")
|
|
|
|
buf, err := os.ReadFile("./test.log")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "Hello world!", string(buf))
|
|
})
|
|
|
|
t.Run("NewStreamHandler with os.File", func(t *testing.T) {
|
|
logger := logfrog.NewLogger("main", logfrog.TRACE)
|
|
|
|
t.Cleanup(func() {
|
|
os.Remove("./test.log");
|
|
})
|
|
|
|
f, err := os.Create("test.log")
|
|
assert.NoError(t, err)
|
|
defer f.Close()
|
|
|
|
logger.AddHandler(NewStreamHandler(f))
|
|
logger.Info("Hello world!")
|
|
|
|
buf, err := os.ReadFile("./test.log")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "Hello world!", string(buf))
|
|
})
|
|
|
|
t.Run("NewStreamHandler with os.Stdout", func(t *testing.T) {
|
|
logger := logfrog.NewLogger("main", logfrog.TRACE)
|
|
|
|
logger.AddHandler(NewStreamHandler(os.Stdout))
|
|
logger.Info("Hello world!\n")
|
|
|
|
// cannot really test if was successfull or not...
|
|
})
|
|
|
|
t.Run("NewStreamHandler with pipe", func(t *testing.T) {
|
|
logger := logfrog.NewLogger("main", logfrog.TRACE)
|
|
|
|
r, w := io.Pipe()
|
|
defer r.Close()
|
|
|
|
logger.AddHandler(NewStreamHandler(w))
|
|
go func() {
|
|
defer w.Close()
|
|
logger.Info("Hello world!")
|
|
}()
|
|
|
|
buf, err := io.ReadAll(r)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "Hello world!", string(buf))
|
|
})
|
|
|
|
}
|