start big refactoring

This commit is contained in:
Dominic Breuker
2018-02-20 19:33:03 +01:00
committed by Dominic Breuker
parent 95150e5e12
commit cb48cc1b37
5 changed files with 149 additions and 4 deletions

View File

@@ -0,0 +1,41 @@
package logger
import (
"bytes"
"log"
"regexp"
"testing"
)
const dateFormatPattern = `[\d]{4}/[\d]{2}/[\d]{2} [\d]{2}:[\d]{2}:[\d]{2}`
var l = NewLogger()
var logTests = []struct {
logger *log.Logger
test func()
expectation string
}{
{l.infoLogger, func() { l.Infof("Info message no. %d", 1) }, "Info message no. 1\n"},
{l.infoLogger, func() { l.Infof("Info message no. %d with a string %s\n", 2, "appended to it") }, "Info message no. 2 with a string appended to it\n"},
{l.errorLogger, func() { l.Errorf("Error message") }, "Error message\n"},
{l.errorLogger, func() { l.Errorf("Error message\n") }, "Error message\n"},
{l.eventLogger, func() { l.Eventf("Event message") }, dateFormatPattern + " Event message\n"},
}
func TestLogging(t *testing.T) {
for i, tt := range logTests {
actual := captureOutput(tt.logger, tt.test)
matcher := regexp.MustCompile(tt.expectation)
if !matcher.Match([]byte(actual)) {
t.Fatalf("[%d] Wrong message logged!: %s", i, actual)
}
}
}
func captureOutput(logger *log.Logger, f func()) string {
var buf bytes.Buffer
logger.SetOutput(&buf)
f()
return buf.String()
}