code.gitea.io/gitea@v1.19.3/modules/log/level_test.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package log 5 6 import ( 7 "fmt" 8 "testing" 9 10 "code.gitea.io/gitea/modules/json" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 type testLevel struct { 16 Level Level `json:"level"` 17 } 18 19 func TestLevelMarshalUnmarshalJSON(t *testing.T) { 20 levelBytes, err := json.Marshal(testLevel{ 21 Level: INFO, 22 }) 23 assert.NoError(t, err) 24 assert.Equal(t, string(makeTestLevelBytes(INFO.String())), string(levelBytes)) 25 26 var testLevel testLevel 27 err = json.Unmarshal(levelBytes, &testLevel) 28 assert.NoError(t, err) 29 assert.Equal(t, INFO, testLevel.Level) 30 31 err = json.Unmarshal(makeTestLevelBytes(`FOFOO`), &testLevel) 32 assert.NoError(t, err) 33 assert.Equal(t, INFO, testLevel.Level) 34 35 err = json.Unmarshal([]byte(fmt.Sprintf(`{"level":%d}`, 2)), &testLevel) 36 assert.NoError(t, err) 37 assert.Equal(t, INFO, testLevel.Level) 38 39 err = json.Unmarshal([]byte(fmt.Sprintf(`{"level":%d}`, 10012)), &testLevel) 40 assert.NoError(t, err) 41 assert.Equal(t, INFO, testLevel.Level) 42 43 err = json.Unmarshal([]byte(`{"level":{}}`), &testLevel) 44 assert.NoError(t, err) 45 assert.Equal(t, INFO, testLevel.Level) 46 47 assert.Equal(t, INFO.String(), Level(1001).String()) 48 49 err = json.Unmarshal([]byte(`{"level":{}`), &testLevel.Level) 50 assert.Error(t, err) 51 } 52 53 func makeTestLevelBytes(level string) []byte { 54 return []byte(fmt.Sprintf(`{"level":"%s"}`, level)) 55 }