You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

level_test.go 1.4KB

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