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.
115 lines
2.6 KiB
115 lines
2.6 KiB
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestImagePipelineDeserialization(t *testing.T) {
|
|
const Payload string = `{
|
|
"name": "example pipeline",
|
|
"type": 0,
|
|
"removeMetadata": false,
|
|
"steps": [
|
|
{
|
|
"name": "resize image",
|
|
"type": 0
|
|
},
|
|
{
|
|
"name": "compress image",
|
|
"type": 1
|
|
}
|
|
]
|
|
}`
|
|
|
|
t.Run("Image pipeline deserialization is successful", func(t *testing.T) {
|
|
values := DeserializePipelines([][]byte{[]byte(Payload)})
|
|
|
|
assert.Equal(t, 1, len(values), "Output should contain one element")
|
|
assert.Equal(t, "example pipeline", values[0].GetName())
|
|
assert.Equal(t, Image, values[0].GetType())
|
|
})
|
|
}
|
|
|
|
func TestVideoPipelineDeserialization(t *testing.T) {
|
|
const Payload string = `{
|
|
"name": "example pipeline",
|
|
"type": 1,
|
|
"removeMetadata": false,
|
|
"steps": [
|
|
{
|
|
"name": "resize image",
|
|
"type": 0
|
|
},
|
|
{
|
|
"name": "compress image",
|
|
"type": 1
|
|
}
|
|
]
|
|
}`
|
|
|
|
t.Run("Video pipelines deserialization is successful", func(t *testing.T) {
|
|
values := DeserializePipelines([][]byte{[]byte(Payload)})
|
|
|
|
assert.Equal(t, 1, len(values), "Output should contain one element")
|
|
assert.Equal(t, "example pipeline", values[0].GetName())
|
|
assert.Equal(t, Video, values[0].GetType())
|
|
})
|
|
}
|
|
|
|
func TestTranslateStep(t *testing.T) {
|
|
const Payload string = `{
|
|
"name": "example pipeline",
|
|
"type": 1,
|
|
"removeMetadata": false,
|
|
"steps": [
|
|
{
|
|
"name": "resize image",
|
|
"type": 0
|
|
}
|
|
]
|
|
}`
|
|
|
|
t.Run("step type deserialization is successful", func(t *testing.T) {
|
|
values := DeserializePipelines([][]byte{[]byte(Payload)})
|
|
pipeline := values[0]
|
|
steps := pipeline.GetSteps()
|
|
|
|
assert.Equal(t, 1, len(steps), "Output steps should contain one element")
|
|
assert.Equal(t, "resize image", steps[0].GetName())
|
|
assert.Equal(t, TypeResizeImageStep, steps[0].GetType())
|
|
|
|
translated, err := steps[0].Translate()
|
|
assert.Equal(t, err, nil)
|
|
assert.IsType(t, ResizeImageStep{}, translated)
|
|
})
|
|
}
|
|
|
|
func TestInvalidStepType(t *testing.T) {
|
|
const Payload string = `{
|
|
"name": "example pipeline",
|
|
"type": 1,
|
|
"removeMetadata": false,
|
|
"steps": [
|
|
{
|
|
"name": "resize image",
|
|
"type": 99999
|
|
}
|
|
]
|
|
}`
|
|
|
|
t.Run("Video pipelines deserialization is successful", func(t *testing.T) {
|
|
values := DeserializePipelines([][]byte{[]byte(Payload)})
|
|
pipeline := values[0]
|
|
steps := pipeline.GetSteps()
|
|
|
|
assert.Equal(t, 1, len(steps), "Output steps should contain one element")
|
|
assert.Equal(t, "resize image", steps[0].GetName())
|
|
assert.Equal(t, StepType(99999), steps[0].GetType())
|
|
|
|
translated, err := steps[0].Translate()
|
|
assert.EqualError(t, err, "invalid type")
|
|
assert.Nil(t, translated)
|
|
})
|
|
}
|