format_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package format
  2. import (
  3. "testing"
  4. )
  5. func TestOutputFormat_IsValid(t *testing.T) {
  6. t.Parallel()
  7. tests := []struct {
  8. name string
  9. format OutputFormat
  10. want bool
  11. }{
  12. {
  13. name: "text format",
  14. format: TextFormat,
  15. want: true,
  16. },
  17. {
  18. name: "json format",
  19. format: JSONFormat,
  20. want: true,
  21. },
  22. {
  23. name: "invalid format",
  24. format: "invalid",
  25. want: false,
  26. },
  27. }
  28. for _, tt := range tests {
  29. tt := tt
  30. t.Run(tt.name, func(t *testing.T) {
  31. t.Parallel()
  32. if got := tt.format.IsValid(); got != tt.want {
  33. t.Errorf("OutputFormat.IsValid() = %v, want %v", got, tt.want)
  34. }
  35. })
  36. }
  37. }
  38. func TestFormatOutput(t *testing.T) {
  39. t.Parallel()
  40. tests := []struct {
  41. name string
  42. content string
  43. format OutputFormat
  44. want string
  45. wantErr bool
  46. }{
  47. {
  48. name: "text format",
  49. content: "test content",
  50. format: TextFormat,
  51. want: "test content",
  52. wantErr: false,
  53. },
  54. {
  55. name: "json format",
  56. content: "test content",
  57. format: JSONFormat,
  58. want: "{\n \"response\": \"test content\"\n}",
  59. wantErr: false,
  60. },
  61. {
  62. name: "invalid format",
  63. content: "test content",
  64. format: "invalid",
  65. want: "",
  66. wantErr: true,
  67. },
  68. }
  69. for _, tt := range tests {
  70. tt := tt
  71. t.Run(tt.name, func(t *testing.T) {
  72. t.Parallel()
  73. got, err := FormatOutput(tt.content, tt.format)
  74. if (err != nil) != tt.wantErr {
  75. t.Errorf("FormatOutput() error = %v, wantErr %v", err, tt.wantErr)
  76. return
  77. }
  78. if got != tt.want {
  79. t.Errorf("FormatOutput() = %v, want %v", got, tt.want)
  80. }
  81. })
  82. }
  83. }