|
Packit Service |
15f37d |
package osbuild2
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
import (
|
|
Packit Service |
15f37d |
"encoding/json"
|
|
Packit Service |
15f37d |
"testing"
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
"github.com/stretchr/testify/assert"
|
|
Packit Service |
15f37d |
)
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
func TestOCIArchiveStage(t *testing.T) {
|
|
Packit Service |
15f37d |
expectedStage := &Stage{
|
|
Packit Service |
15f37d |
Type: "org.osbuild.oci-archive",
|
|
Packit Service |
15f37d |
Options: &OCIArchiveStageOptions{},
|
|
Packit Service |
15f37d |
Inputs: &OCIArchiveStageInputs{},
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
actualStage := NewOCIArchiveStage(&OCIArchiveStageOptions{}, &OCIArchiveStageInputs{})
|
|
Packit Service |
15f37d |
assert.Equal(t, expectedStage, actualStage)
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
func TestOCIArchiveInputs(t *testing.T) {
|
|
Packit Service |
15f37d |
exp := `{
|
|
Packit Service |
15f37d |
"base": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.oci-archive",
|
|
Packit Service |
15f37d |
"origin":"org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-tree"]
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
"layer.1": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.tree",
|
|
Packit Service |
15f37d |
"origin": "org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-ostree"]
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
"layer.2": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.tree",
|
|
Packit Service |
15f37d |
"origin": "org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-ostree2"]
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
}`
|
|
Packit Service |
15f37d |
inputs := new(OCIArchiveStageInputs)
|
|
Packit Service |
15f37d |
base := &OCIArchiveStageInput{
|
|
Packit Service |
15f37d |
References: []string{
|
|
Packit Service |
15f37d |
"name:container-tree",
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
base.Type = "org.osbuild.oci-archive"
|
|
Packit Service |
15f37d |
base.Origin = "org.osbuild.pipeline"
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
layer1 := OCIArchiveStageInput{
|
|
Packit Service |
15f37d |
References: []string{
|
|
Packit Service |
15f37d |
"name:container-ostree",
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
layer1.Type = "org.osbuild.tree"
|
|
Packit Service |
15f37d |
layer1.Origin = "org.osbuild.pipeline"
|
|
Packit Service |
15f37d |
layer2 := OCIArchiveStageInput{
|
|
Packit Service |
15f37d |
References: []string{
|
|
Packit Service |
15f37d |
"name:container-ostree2",
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
layer2.Type = "org.osbuild.tree"
|
|
Packit Service |
15f37d |
layer2.Origin = "org.osbuild.pipeline"
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
inputs.Base = base
|
|
Packit Service |
15f37d |
inputs.Layers = []OCIArchiveStageInput{layer1, layer2}
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
data, err := json.Marshal(inputs)
|
|
Packit Service |
15f37d |
assert.NoError(t, err)
|
|
Packit Service |
15f37d |
assert.JSONEq(t, exp, string(data))
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
inputsRead := new(OCIArchiveStageInputs)
|
|
Packit Service |
15f37d |
err = json.Unmarshal([]byte(exp), inputsRead)
|
|
Packit Service |
15f37d |
assert.NoError(t, err)
|
|
Packit Service |
15f37d |
assert.Equal(t, inputs, inputsRead)
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
func TestOCIArchiveInputsErrors(t *testing.T) {
|
|
Packit Service |
15f37d |
noBase := `{
|
|
Packit Service |
15f37d |
"layer.10": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.tree",
|
|
Packit Service |
15f37d |
"origin": "org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-ostree"]
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
"layer.2": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.tree",
|
|
Packit Service |
15f37d |
"origin": "org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-ostree2"]
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
}`
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
inputsRead := new(OCIArchiveStageInputs)
|
|
Packit Service |
15f37d |
assert.Error(t, json.Unmarshal([]byte(noBase), inputsRead))
|
|
Packit Service |
15f37d |
|
|
Packit Service |
15f37d |
invalidKey := `{
|
|
Packit Service |
15f37d |
"base": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.oci-archive",
|
|
Packit Service |
15f37d |
"origin":"org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-tree"]
|
|
Packit Service |
15f37d |
},
|
|
Packit Service |
15f37d |
"not-a-layer": {
|
|
Packit Service |
15f37d |
"type": "org.osbuild.tree",
|
|
Packit Service |
15f37d |
"origin": "org.osbuild.pipeline",
|
|
Packit Service |
15f37d |
"references": ["name:container-ostree2"]
|
|
Packit Service |
15f37d |
}
|
|
Packit Service |
15f37d |
}`
|
|
Packit Service |
15f37d |
assert.Error(t, json.Unmarshal([]byte(invalidKey), inputsRead))
|
|
Packit Service |
15f37d |
}
|