strutil_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright 2020 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package strutil
  5. import (
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestToUpperFirst(t *testing.T) {
  10. tests := []struct {
  11. name string
  12. s string
  13. expStr string
  14. }{
  15. {
  16. name: "empty string",
  17. },
  18. {
  19. name: "first letter is a digit",
  20. s: "123 let's go",
  21. expStr: "123 let's go",
  22. },
  23. {
  24. name: "lower to upper",
  25. s: "this is a sentence",
  26. expStr: "This is a sentence",
  27. },
  28. {
  29. name: "already in upper case",
  30. s: "Let's go",
  31. expStr: "Let's go",
  32. },
  33. }
  34. for _, test := range tests {
  35. t.Run(test.name, func(t *testing.T) {
  36. assert.Equal(t, test.expStr, ToUpperFirst(test.s))
  37. })
  38. }
  39. }
  40. func TestRandomChars(t *testing.T) {
  41. cache := make(map[string]bool)
  42. for i := 0; i < 100; i++ {
  43. chars, err := RandomChars(10)
  44. if err != nil {
  45. t.Fatal(err)
  46. }
  47. if cache[chars] {
  48. t.Fatalf("Duplicated chars %q", chars)
  49. }
  50. cache[chars] = true
  51. }
  52. }