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  }