Micro-service for file storage and processing written in Go
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.

62 lines
1.5 KiB

  1. package pipelines
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "testing"
  5. )
  6. func TestTranslateStep(t *testing.T) {
  7. const Payload string = `{
  8. "name": "example pipeline",
  9. "type": 1,
  10. "removeMetadata": false,
  11. "steps": [
  12. {
  13. "name": "resize image",
  14. "type": 0
  15. }
  16. ]
  17. }`
  18. t.Run("step type deserialization is successful", func(t *testing.T) {
  19. values := DeserializePipelines([][]byte{[]byte(Payload)})
  20. pipeline := values[0]
  21. steps := pipeline.GetSteps()
  22. assert.Equal(t, 1, len(steps), "Output steps should contain one element")
  23. assert.Equal(t, "resize image", steps[0].GetName())
  24. assert.Equal(t, TypeResizeImageStep, steps[0].GetType())
  25. translated, err := steps[0].Translate()
  26. assert.Equal(t, err, nil)
  27. assert.IsType(t, ResizeImageStep{}, translated)
  28. })
  29. }
  30. func TestInvalidStepType(t *testing.T) {
  31. const Payload string = `{
  32. "name": "example pipeline",
  33. "type": 1,
  34. "removeMetadata": false,
  35. "steps": [
  36. {
  37. "name": "resize image",
  38. "type": 99999
  39. }
  40. ]
  41. }`
  42. t.Run("Video pipelines deserialization is successful", func(t *testing.T) {
  43. values := DeserializePipelines([][]byte{[]byte(Payload)})
  44. pipeline := values[0]
  45. steps := pipeline.GetSteps()
  46. assert.Equal(t, 1, len(steps), "Output steps should contain one element")
  47. assert.Equal(t, "resize image", steps[0].GetName())
  48. assert.Equal(t, StepType(99999), steps[0].GetType())
  49. translated, err := steps[0].Translate()
  50. assert.EqualError(t, err, "invalid type")
  51. assert.Nil(t, translated)
  52. })
  53. }