github.com/woremacx/kocha@v0.7.1-0.20150731103243-a5889322afc9/log/formatter_test.go (about)

     1  package log_test
     2  
     3  import (
     4  	"bytes"
     5  	"reflect"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/woremacx/kocha/log"
    10  )
    11  
    12  func TestRawFormatter_Format(t *testing.T) {
    13  	now := time.Now()
    14  	for _, v := range []struct {
    15  		entry  *log.Entry
    16  		expect string
    17  	}{
    18  		{&log.Entry{
    19  			Level:   log.DEBUG,
    20  			Time:    now,
    21  			Message: "test_raw_log1",
    22  			Fields: log.Fields{
    23  				"first":  1,
    24  				"second": "2",
    25  				"third":  "san",
    26  			},
    27  		}, "test_raw_log1"},
    28  		{&log.Entry{
    29  			Message: "test_raw_log2",
    30  			Level:   log.INFO,
    31  		}, "test_raw_log2"},
    32  	} {
    33  		var buf bytes.Buffer
    34  		formatter := &log.RawFormatter{}
    35  		if err := formatter.Format(&buf, v.entry); err != nil {
    36  			t.Errorf(`RawFormatter.Format(&buf, %#v) => %#v; want %#v`, v.entry, err, nil)
    37  		}
    38  		actual := buf.String()
    39  		expect := v.expect
    40  		if !reflect.DeepEqual(actual, expect) {
    41  			t.Errorf(`RawFormatter.Format(&buf, %#v) => %#v; want %#v`, v.entry, actual, expect)
    42  		}
    43  	}
    44  }
    45  
    46  func TestLTSVFormatter_Format(t *testing.T) {
    47  	now := time.Now()
    48  	for _, v := range []struct {
    49  		entry    *log.Entry
    50  		expected string
    51  	}{
    52  		{&log.Entry{
    53  			Level:   log.DEBUG,
    54  			Time:    now,
    55  			Message: "test_ltsv_log1",
    56  			Fields: log.Fields{
    57  				"first":  1,
    58  				"second": "2",
    59  				"third":  "san",
    60  			},
    61  		}, "level:DEBUG\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test_ltsv_log1\tfirst:1\tsecond:2\tthird:san"},
    62  		{&log.Entry{
    63  			Level:   log.INFO,
    64  			Time:    now,
    65  			Message: "test_ltsv_log2",
    66  		}, "level:INFO\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test_ltsv_log2"},
    67  		{&log.Entry{
    68  			Level: log.WARN,
    69  			Time:  now,
    70  		}, "level:WARN\ttime:" + now.Format(time.RFC3339Nano)},
    71  		{&log.Entry{
    72  			Level: log.ERROR,
    73  			Time:  now,
    74  		}, "level:ERROR\ttime:" + now.Format(time.RFC3339Nano)},
    75  		{&log.Entry{
    76  			Level: log.FATAL,
    77  		}, "level:FATAL"},
    78  		{&log.Entry{}, "level:NONE"},
    79  	} {
    80  		var buf bytes.Buffer
    81  		formatter := &log.LTSVFormatter{}
    82  		if err := formatter.Format(&buf, v.entry); err != nil {
    83  			t.Errorf(`LTSVFormatter.Format(&buf, %#v) => %#v; want %#v`, v.entry, err, nil)
    84  		}
    85  		actual := buf.String()
    86  		expected := v.expected
    87  		if !reflect.DeepEqual(actual, expected) {
    88  			t.Errorf(`LTSVFormatter.Format(&buf, %#v); buf => %#v; want %#v`, v.entry, actual, expected)
    89  		}
    90  	}
    91  }