diff options
| author | Felix Hanley <felix@userspace.com.au> | 2019-05-03 03:56:55 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2019-05-03 03:56:55 +0000 |
| commit | 6294a65ae5ed2740765afdb072006550aac02751 (patch) | |
| tree | 9568d2964adcef08490a75bfa9b7312ff160e076 | |
| parent | 4ccf7b0a7a32df1c60a69aaafd34d330f5b338e4 (diff) | |
| download | logger-6294a65ae5ed2740765afdb072006550aac02751.tar.gz logger-6294a65ae5ed2740765afdb072006550aac02751.tar.bz2 | |
Clean up all the tests
| -rw-r--r-- | logger_test.go | 145 | ||||
| -rw-r--r-- | writers/json/json_test.go | 30 | ||||
| -rw-r--r-- | writers/kv/key_value_test.go | 82 |
3 files changed, 136 insertions, 121 deletions
diff --git a/logger_test.go b/logger_test.go index f1d54d7..dc9d574 100644 --- a/logger_test.go +++ b/logger_test.go @@ -27,129 +27,50 @@ func TestLoggerOptions(t *testing.T) { } } -func TestDefaultOutput(t *testing.T) { +func TestLevels(t *testing.T) { tests := []struct { - msg string - names []string - fields []interface{} - extras []interface{} - level message.Level - minLevel message.Level - expected string + min message.Level + level message.Level + output bool }{ - { - msg: "msg", - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg", - }, - { - msg: "msg", extras: []interface{}{"one", "two"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg one=two", - }, - { - msg: "msg", extras: []interface{}{"one", "two three"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg one=\"two three\"", - }, - { - // Odd number of extras - msg: "msg", extras: []interface{}{"two"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg extra00=two", - }, - { - msg: "msg", - level: message.INFO, - minLevel: message.ERROR, - expected: "", - }, - { - msg: "msg", - level: message.INFO, - minLevel: message.INFO, - expected: "[info] msg", - }, - { - msg: "msg", - level: message.INFO, - minLevel: message.DEBUG, - expected: "[info] msg", - }, - { - msg: "msg", - level: message.DEBUG, - minLevel: message.ERROR, - expected: "", - }, - { - // Odd number of extras - msg: "msg", extras: []interface{}{1}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg extra00=1", - }, - { - msg: "msg", extras: []interface{}{"one", 2.23423}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg one=2.23423", - }, - { - msg: "msg", extras: []interface{}{"one", 2.23423}, - fields: []interface{}{"request", "1234"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] msg request=1234 one=2.23423", - }, - { - // Odd number of extras - msg: "msg", extras: []interface{}{1}, - names: []string{"one"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] one: msg extra00=1", - }, - { - // Odd number of extras - msg: "msg", extras: []interface{}{1}, - names: []string{"one", "two"}, - level: message.ERROR, - minLevel: message.ERROR, - expected: "[error] one.two: msg extra00=1", - }, + // error + {message.ERROR, message.ERROR, true}, + {message.ERROR, message.WARN, false}, + {message.ERROR, message.INFO, false}, + {message.ERROR, message.DEBUG, false}, + // warn + {message.WARN, message.ERROR, true}, + {message.WARN, message.WARN, true}, + {message.WARN, message.INFO, false}, + {message.WARN, message.DEBUG, false}, + // info + {message.INFO, message.ERROR, true}, + {message.INFO, message.WARN, true}, + {message.INFO, message.INFO, true}, + {message.INFO, message.DEBUG, false}, + // debug + {message.DEBUG, message.ERROR, true}, + {message.DEBUG, message.WARN, true}, + {message.DEBUG, message.INFO, true}, + {message.DEBUG, message.DEBUG, true}, } var buf bytes.Buffer kv, err := kv.New(kv.SetOutput(&buf)) if err != nil { t.Fatal("failed to create keyvalue: ", err) } + log, err := New(AddWriter(kv)) + if err != nil { + t.Fatal("failed to create logger: ", err) + } - for _, tt := range tests { - log, err := New(AddWriter(kv)) - if err != nil { - t.Fatal("failed to create logger: ", err) - } - log.SetLevel(tt.minLevel) - for _, n := range tt.names { - log = log.GetNamed(n) - } - for i := 0; i < len(tt.fields); i = i + 2 { - log.SetField(tt.fields[i].(string), tt.fields[i+1]) - } - log.Log(tt.level, tt.msg, tt.extras...) + for i, tt := range tests { + log.SetLevel(tt.min) + log.Log(tt.level, "test") actual := strings.TrimSpace(buf.String()) buf.Reset() - // Skip the timestamp etc. - if idx := strings.IndexByte(actual, '['); idx > 0 { - actual = actual[idx:] - } - if actual != tt.expected { - t.Errorf("Log(%s, %v) => %s, expected %s", tt.level, tt.msg, actual, tt.expected) + if (len(actual) > 0) != tt.output { + t.Errorf("invalid output for test %d", i) } } } diff --git a/writers/json/json_test.go b/writers/json/json_test.go index 9a001c2..a6b762e 100644 --- a/writers/json/json_test.go +++ b/writers/json/json_test.go @@ -11,7 +11,7 @@ import ( ) func TestWriter(t *testing.T) { - now := time.Now() + now, _ := time.Parse(time.RFC3339, "2019-05-03T13:38:29.987249+10:00") var tests = []struct { in message.Message expected map[string]interface{} @@ -23,7 +23,10 @@ func TestWriter(t *testing.T) { Level: message.ERROR, Content: "msg", }, - expected: map[string]interface{}{"@level": "error", "@name": "test", "@message": "msg"}, + expected: map[string]interface{}{ + "@level": "error", "@name": "test", "@message": "msg", + "@time": "2019-05-03T13:38:29.987249+10:00", + }, }, { in: message.Message{ @@ -33,7 +36,10 @@ func TestWriter(t *testing.T) { Content: "msg", Extras: []interface{}{"one"}, }, - expected: map[string]interface{}{"@level": "error", "@name": "test", "@message": "msg", "extra00": "one"}, + expected: map[string]interface{}{ + "@level": "error", "@name": "test", "@message": "msg", "extra00": "one", + "@time": "2019-05-03T13:38:29.987249+10:00", + }, }, { in: message.Message{ @@ -43,7 +49,10 @@ func TestWriter(t *testing.T) { Content: "msg", Fields: map[string]interface{}{"one": "1"}, }, - expected: map[string]interface{}{"@level": "error", "@name": "test", "@message": "msg", "one": "1"}, + expected: map[string]interface{}{ + "@level": "error", "@name": "test", "@message": "msg", "one": "1", + "@time": "2019-05-03T13:38:29.987249+10:00", + }, }, { in: message.Message{ @@ -52,7 +61,10 @@ func TestWriter(t *testing.T) { Level: message.ERROR, Content: "msg", Extras: []interface{}{"one", "1", "two", "2", "three", 3, "fo ur", "# 4"}, }, - expected: map[string]interface{}{"@level": "error", "@name": "test", "@message": "msg", "one": "1", "two": "2", "three": float64(3), "fo ur": "# 4"}, + expected: map[string]interface{}{ + "@level": "error", "@name": "test", "@message": "msg", "one": "1", "two": "2", "three": float64(3), "fo ur": "# 4", + "@time": "2019-05-03T13:38:29.987249+10:00", + }, }, { in: message.Message{ @@ -62,7 +74,10 @@ func TestWriter(t *testing.T) { Content: "msg", Extras: []interface{}{"one"}, Fields: map[string]interface{}{"f1": "v1"}, }, - expected: map[string]interface{}{"@level": "debug", "@name": "test", "@message": "msg", "f1": "v1", "extra00": "one"}, + expected: map[string]interface{}{ + "@level": "debug", "@name": "test", "@message": "msg", "f1": "v1", "extra00": "one", + "@time": "2019-05-03T13:38:29.987249+10:00", + }, }, } @@ -81,9 +96,6 @@ func TestWriter(t *testing.T) { } buf.Reset() - // Ignore time - delete(raw, "@time") - if !reflect.DeepEqual(raw, tt.expected) { t.Errorf("got %q, expected %q\n", raw, tt.expected) } diff --git a/writers/kv/key_value_test.go b/writers/kv/key_value_test.go index b81f834..a66dbdf 100644 --- a/writers/kv/key_value_test.go +++ b/writers/kv/key_value_test.go @@ -1 +1,83 @@ package kv + +import ( + "bytes" + "testing" + "time" + + "src.userspace.com.au/felix/logger/message" +) + +func TestWriter(t *testing.T) { + now, _ := time.Parse(time.RFC3339, "2019-05-03T13:38:29.987249+10:00") + var tests = []struct { + in message.Message + expected string + }{ + { + in: message.Message{ + Time: now, + Name: "test", + Level: message.ERROR, + Content: "msg", + }, + expected: "2019-05-03T13:38:29.987+1000 [error] test: msg", + }, + { + in: message.Message{ + Time: now, + Name: "test", + Level: message.ERROR, + Content: "msg", + Extras: []interface{}{"one"}, + }, + expected: "2019-05-03T13:38:29.987+1000 [error] test: msg extra00=one", + }, + { + in: message.Message{ + Time: now, + Name: "test", + Level: message.ERROR, + Content: "msg", + Fields: map[string]interface{}{"one": "1"}, + }, + expected: "2019-05-03T13:38:29.987+1000 [error] test: msg one=1", + }, + { + in: message.Message{ + Time: now, + Name: "test", + Level: message.ERROR, + Content: "msg", Extras: []interface{}{"one", "1", "two", "2", "three", 3, "fo ur", "# 4"}, + }, + expected: `2019-05-03T13:38:29.987+1000 [error] test: msg one=1 two=2 three=3 "fo ur"="# 4"`, + }, + { + in: message.Message{ + Time: now, + Name: "test", + Level: message.DEBUG, + Content: "msg", + Fields: map[string]interface{}{"f1": "v1"}, + Extras: []interface{}{"one"}, + }, + expected: "2019-05-03T13:38:29.987+1000 [debug] test: msg f1=v1 extra00=one", + }, + } + + var buf bytes.Buffer + l, err := New(SetOutput(&buf)) + if err != nil { + panic(err) + } + + for _, tt := range tests { + l.Write(tt.in) + actual := buf.String() + buf.Reset() + + if actual != tt.expected { + t.Errorf("got %s, expected %s", actual, tt.expected) + } + } +} |
