string_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package stringx
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestString_IsEmptyOrSpace(t *testing.T) {
  7. cases := []struct {
  8. input string
  9. want bool
  10. }{
  11. {
  12. want: true,
  13. },
  14. {
  15. input: " ",
  16. want: true,
  17. },
  18. {
  19. input: "\t",
  20. want: true,
  21. },
  22. {
  23. input: "\n",
  24. want: true,
  25. },
  26. {
  27. input: "\f",
  28. want: true,
  29. },
  30. {
  31. input: " ",
  32. want: true,
  33. },
  34. }
  35. for _, v := range cases {
  36. s := From(v.input)
  37. assert.Equal(t, v.want, s.IsEmptyOrSpace())
  38. }
  39. }
  40. func TestString_Snake2Camel(t *testing.T) {
  41. cases := []struct {
  42. input string
  43. want string
  44. }{
  45. {
  46. input: "__",
  47. want: "",
  48. },
  49. {
  50. input: "go_zero",
  51. want: "GoZero",
  52. },
  53. {
  54. input: "の_go_zero",
  55. want: "のGoZero",
  56. },
  57. {
  58. input: "goZero",
  59. want: "GoZero",
  60. },
  61. {
  62. input: "goZero",
  63. want: "GoZero",
  64. },
  65. {
  66. input: "goZero_",
  67. want: "GoZero",
  68. },
  69. {
  70. input: "go_Zero_",
  71. want: "GoZero",
  72. },
  73. {
  74. input: "_go_Zero_",
  75. want: "GoZero",
  76. },
  77. }
  78. for _, c := range cases {
  79. ret := From(c.input).ToCamel()
  80. assert.Equal(t, c.want, ret)
  81. }
  82. }
  83. func TestString_Camel2Snake(t *testing.T) {
  84. cases := []struct {
  85. input string
  86. want string
  87. }{
  88. {
  89. input: "goZero",
  90. want: "go_zero",
  91. },
  92. {
  93. input: "Gozero",
  94. want: "gozero",
  95. },
  96. {
  97. input: "GoZero",
  98. want: "go_zero",
  99. },
  100. {
  101. input: "Go_Zero",
  102. want: "go__zero",
  103. },
  104. }
  105. for _, c := range cases {
  106. ret := From(c.input).ToSnake()
  107. assert.Equal(t, c.want, ret)
  108. }
  109. }
  110. func TestTitle(t *testing.T) {
  111. cases := []struct {
  112. input string
  113. want string
  114. }{
  115. {
  116. input: "go zero",
  117. want: "Go Zero",
  118. },
  119. {
  120. input: "goZero",
  121. want: "GoZero",
  122. },
  123. {
  124. input: "GoZero",
  125. want: "GoZero",
  126. },
  127. {
  128. input: "の go zero",
  129. want: "の Go Zero",
  130. },
  131. {
  132. input: "Gozero",
  133. want: "Gozero",
  134. },
  135. {
  136. input: "Go_zero",
  137. want: "Go_zero",
  138. },
  139. {
  140. input: "go_zero",
  141. want: "Go_zero",
  142. },
  143. {
  144. input: "Go_Zero",
  145. want: "Go_Zero",
  146. },
  147. }
  148. for _, c := range cases {
  149. ret := From(c.input).Title()
  150. assert.Equal(t, c.want, ret)
  151. }
  152. }
  153. func TestUntitle(t *testing.T) {
  154. cases := []struct {
  155. input string
  156. want string
  157. }{
  158. {
  159. input: "go zero",
  160. want: "go zero",
  161. },
  162. {
  163. input: "GoZero",
  164. want: "goZero",
  165. },
  166. {
  167. input: "Gozero",
  168. want: "gozero",
  169. },
  170. {
  171. input: "Go_zero",
  172. want: "go_zero",
  173. },
  174. {
  175. input: "go_zero",
  176. want: "go_zero",
  177. },
  178. {
  179. input: "Go_Zero",
  180. want: "go_Zero",
  181. },
  182. }
  183. for _, c := range cases {
  184. ret := From(c.input).Untitle()
  185. assert.Equal(t, c.want, ret)
  186. }
  187. }