2023-11-09 21:04:18 +00:00
|
|
|
package gocron
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"log"
|
2023-11-14 15:56:05 +00:00
|
|
|
"strings"
|
2023-11-09 21:04:18 +00:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestNoOpLogger(_ *testing.T) {
|
|
|
|
|
noOp := noOpLogger{}
|
|
|
|
|
noOp.Debug("debug", "arg1", "arg2")
|
|
|
|
|
noOp.Error("error", "arg1", "arg2")
|
|
|
|
|
noOp.Info("info", "arg1", "arg2")
|
|
|
|
|
noOp.Warn("warn", "arg1", "arg2")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestNewLogger(t *testing.T) {
|
|
|
|
|
tests := []struct {
|
|
|
|
|
name string
|
|
|
|
|
level LogLevel
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
"debug",
|
|
|
|
|
LogLevelDebug,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"info",
|
|
|
|
|
LogLevelInfo,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"warn",
|
|
|
|
|
LogLevelWarn,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"error",
|
|
|
|
|
LogLevelError,
|
|
|
|
|
},
|
2023-11-14 17:06:16 +00:00
|
|
|
{
|
|
|
|
|
"Less than error",
|
|
|
|
|
-1,
|
|
|
|
|
},
|
2023-11-09 21:04:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
|
var results bytes.Buffer
|
2023-11-14 19:45:46 +00:00
|
|
|
l := &logger{
|
|
|
|
|
level: tt.level,
|
|
|
|
|
log: log.New(&results, "", log.LstdFlags),
|
|
|
|
|
}
|
2023-11-09 21:04:18 +00:00
|
|
|
|
2023-11-14 15:56:05 +00:00
|
|
|
var noArgs []any
|
|
|
|
|
oneArg := []any{"arg1"}
|
|
|
|
|
twoArgs := []any{"arg1", "arg2"}
|
|
|
|
|
var noArgsStr []string
|
|
|
|
|
oneArgStr := []string{"arg1"}
|
|
|
|
|
twoArgsStr := []string{"arg1", "arg2"}
|
2023-11-09 21:04:18 +00:00
|
|
|
|
2023-11-14 15:56:05 +00:00
|
|
|
for _, args := range []struct {
|
|
|
|
|
argsAny []any
|
|
|
|
|
argsStr []string
|
|
|
|
|
}{
|
|
|
|
|
{noArgs, noArgsStr},
|
|
|
|
|
{oneArg, oneArgStr},
|
|
|
|
|
{twoArgs, twoArgsStr},
|
|
|
|
|
} {
|
|
|
|
|
l.Debug("debug", args.argsAny...)
|
|
|
|
|
if tt.level >= LogLevelDebug {
|
|
|
|
|
r := results.String()
|
|
|
|
|
assert.Contains(t, r, "DEBUG: debug")
|
|
|
|
|
assert.Contains(t, r, strings.Join(args.argsStr, "="))
|
|
|
|
|
} else {
|
|
|
|
|
assert.Empty(t, results.String())
|
|
|
|
|
}
|
|
|
|
|
results.Reset()
|
2023-11-09 21:04:18 +00:00
|
|
|
|
2023-11-14 15:56:05 +00:00
|
|
|
l.Info("info", args.argsAny...)
|
|
|
|
|
if tt.level >= LogLevelInfo {
|
|
|
|
|
r := results.String()
|
|
|
|
|
assert.Contains(t, r, "INFO: info")
|
|
|
|
|
assert.Contains(t, r, strings.Join(args.argsStr, "="))
|
|
|
|
|
} else {
|
|
|
|
|
assert.Empty(t, results.String())
|
|
|
|
|
}
|
|
|
|
|
results.Reset()
|
|
|
|
|
|
|
|
|
|
l.Warn("warn", args.argsAny...)
|
|
|
|
|
if tt.level >= LogLevelWarn {
|
|
|
|
|
r := results.String()
|
|
|
|
|
assert.Contains(t, r, "WARN: warn")
|
|
|
|
|
assert.Contains(t, r, strings.Join(args.argsStr, "="))
|
|
|
|
|
} else {
|
|
|
|
|
assert.Empty(t, results.String())
|
|
|
|
|
}
|
|
|
|
|
results.Reset()
|
2023-11-09 21:04:18 +00:00
|
|
|
|
2023-11-14 15:56:05 +00:00
|
|
|
l.Error("error", args.argsAny...)
|
|
|
|
|
if tt.level >= LogLevelError {
|
|
|
|
|
r := results.String()
|
|
|
|
|
assert.Contains(t, r, "ERROR: error")
|
|
|
|
|
assert.Contains(t, r, strings.Join(args.argsStr, "="))
|
|
|
|
|
} else {
|
|
|
|
|
assert.Empty(t, results.String())
|
|
|
|
|
}
|
|
|
|
|
results.Reset()
|
2023-11-09 21:04:18 +00:00
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|