2
0

querier_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package cloudcost
  2. import (
  3. "testing"
  4. )
  5. func TestParseSortDirection(t *testing.T) {
  6. tests := map[string]struct {
  7. input string
  8. want SortDirection
  9. wantErr bool
  10. }{
  11. "Empty String": {
  12. input: "",
  13. want: SortDirectionNone,
  14. wantErr: true,
  15. },
  16. "invalid input": {
  17. input: "invalid",
  18. want: SortDirectionNone,
  19. wantErr: true,
  20. },
  21. "upper case ascending": {
  22. input: "ASC",
  23. want: SortDirectionAscending,
  24. wantErr: false,
  25. },
  26. "lower case ascending": {
  27. input: "asc",
  28. want: SortDirectionAscending,
  29. wantErr: false,
  30. },
  31. "upper case descending": {
  32. input: "DESC",
  33. want: SortDirectionDescending,
  34. wantErr: false,
  35. },
  36. "lower case descending": {
  37. input: "desc",
  38. want: SortDirectionDescending,
  39. wantErr: false,
  40. },
  41. }
  42. for name, tt := range tests {
  43. t.Run(name, func(t *testing.T) {
  44. got, err := ParseSortDirection(tt.input)
  45. if (err != nil) != tt.wantErr {
  46. t.Errorf("ParseSortDirection() error = %v, wantErr %v", err, tt.wantErr)
  47. return
  48. }
  49. if got != tt.want {
  50. t.Errorf("ParseSortDirection() got = %v, want %v", got, tt.want)
  51. }
  52. })
  53. }
  54. }
  55. func TestParseSortField(t *testing.T) {
  56. tests := map[string]struct {
  57. input string
  58. want SortField
  59. wantErr bool
  60. }{
  61. "Empty String": {
  62. input: "",
  63. want: SortFieldNone,
  64. wantErr: true,
  65. },
  66. "invalid input": {
  67. input: "invalid",
  68. want: SortFieldNone,
  69. wantErr: true,
  70. },
  71. "upper case cost": {
  72. input: "Cost",
  73. want: SortFieldCost,
  74. wantErr: false,
  75. },
  76. "lower case cost": {
  77. input: "cost",
  78. want: SortFieldCost,
  79. wantErr: false,
  80. },
  81. "upper case k8s %": {
  82. input: "KubernetesPercent",
  83. want: SortFieldKubernetesPercent,
  84. wantErr: false,
  85. },
  86. "lower case k8s %": {
  87. input: "kubernetesPercent",
  88. want: SortFieldKubernetesPercent,
  89. wantErr: false,
  90. },
  91. "upper case name": {
  92. input: "Name",
  93. want: SortFieldName,
  94. wantErr: false,
  95. },
  96. "lower case Name": {
  97. input: "name",
  98. want: SortFieldName,
  99. wantErr: false,
  100. },
  101. }
  102. for name, tt := range tests {
  103. t.Run(name, func(t *testing.T) {
  104. got, err := ParseSortField(tt.input)
  105. if (err != nil) != tt.wantErr {
  106. t.Errorf("ParseSortField() error = %v, wantErr %v", err, tt.wantErr)
  107. return
  108. }
  109. if got != tt.want {
  110. t.Errorf("ParseSortField() got = %v, want %v", got, tt.want)
  111. }
  112. })
  113. }
  114. }