github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/log/transfer_test.go (about)

     1  package log
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  	"time"
     7  )
     8  
     9  // TestTransform 测试日志格式转换成具体日志的模块
    10  func TestTransform(tx *testing.T) {
    11  	t, err := time.Parse("2006/01/02 15:04:05", "2016/11/28 16:38:27")
    12  	if err != nil {
    13  		tx.Errorf("test fail, %+v", err)
    14  	}
    15  	tpls := map[string][]interface{}{
    16  		``:          []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, ``},
    17  		`%session`:  []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `12345678`},
    18  		`%date`:     []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `20161128`},
    19  		`%datetime`: []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `2016/11/28 16:38:27`},
    20  		`%year`:     []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `2016`},
    21  		`%mm`:       []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `11`},
    22  		`%dd`:       []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `28`},
    23  		`%hh`:       []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `16`},
    24  		`%mi`:       []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `38`},
    25  		`%ss`:       []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `27`},
    26  		`%level`:    []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `Info`},
    27  		`%l`:        []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `I`},
    28  		`%name`:     []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `name1`},
    29  		`%content`:  []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `content1`},
    30  		`%test`:     []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, ``},
    31  		`test`:      []interface{}{&LogEvent{Level: "Info", Now: t, Name: "name1", Session: "12345678", Content: "content1", Output: "output1"}, `test`},
    32  	}
    33  
    34  	for tpl, except := range tpls {
    35  		actual := transform(tpl, except[0].(*LogEvent))
    36  		if !strings.EqualFold(actual, except[1].(string)) {
    37  			tx.Errorf("test fail actual:%s\texcept:%s\t", actual, except[1].(string))
    38  		}
    39  	}
    40  }