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 }