From 7a3a90cb3dace16f6732f12bf05f469e1e921a19 Mon Sep 17 00:00:00 2001 From: Shuhao Wu Date: Mon, 9 Jun 2014 11:53:23 -0400 Subject: [PATCH] Added test --- entry.go | 7 +------ logrus_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/entry.go b/entry.go index 052697c..08cc15f 100644 --- a/entry.go +++ b/entry.go @@ -38,12 +38,7 @@ func (entry *Entry) String() (string, error) { } func (entry *Entry) WithField(key string, value interface{}) *Entry { - data := Fields{} - for k, v := range entry.Data { - data[k] = v - } - data[key] = value - return &Entry{Logger: entry.Logger, Data: data} + return entry.WithFields(Fields{key: value}) } func (entry *Entry) WithFields(fields Fields) *Entry { diff --git a/logrus_test.go b/logrus_test.go index 96a66a2..82187ae 100644 --- a/logrus_test.go +++ b/logrus_test.go @@ -98,3 +98,33 @@ func TestInfoShouldNotAddSpacesBetweenStrings(t *testing.T) { assert.Equal(t, fields["msg"], "testtest") }) } + +func TestWithFieldsShouldAllowAssignments(t *testing.T) { + var buffer bytes.Buffer + var fields Fields + + logger := New() + logger.Out = &buffer + logger.Formatter = new(JSONFormatter) + + localLog := logger.WithFields(Fields{ + "key1": "value1", + }) + + localLog.WithField("key2", "value2").Info("test") + err := json.Unmarshal(buffer.Bytes(), &fields) + assert.Nil(t, err) + + assert.Equal(t, "value2", fields["key2"]) + assert.Equal(t, "value1", fields["key1"]) + + buffer = bytes.Buffer{} + fields = Fields{} + localLog.Info("test") + err = json.Unmarshal(buffer.Bytes(), &fields) + assert.Nil(t, err) + + _, ok := fields["key2"] + assert.Equal(t, false, ok) + assert.Equal(t, "value1", fields["key1"]) +}