woodpecker/pipeline/frontend/yaml/matrix/matrix_test.go

75 lines
1.6 KiB
Go
Raw Normal View History

// Copyright 2023 Woodpecker Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
2019-04-06 13:44:04 +00:00
package matrix
import (
"testing"
"github.com/stretchr/testify/assert"
2019-04-06 13:44:04 +00:00
)
func TestMatrix(t *testing.T) {
axis, _ := ParseString(fakeMatrix)
assert.Len(t, axis, 24)
2019-04-06 13:44:04 +00:00
set := map[string]bool{}
for _, perm := range axis {
set[perm.String()] = true
}
assert.Len(t, set, 24)
}
2019-04-06 13:44:04 +00:00
func TestMatrixEmpty(t *testing.T) {
axis, err := ParseString("")
assert.NoError(t, err)
assert.Empty(t, axis)
}
2019-04-06 13:44:04 +00:00
func TestMatrixIncluded(t *testing.T) {
axis, err := ParseString(fakeMatrixInclude)
assert.NoError(t, err)
assert.Len(t, axis, 2)
assert.Equal(t, "1.5", axis[0]["go_version"])
assert.Equal(t, "1.6", axis[1]["go_version"])
assert.Equal(t, "3.4", axis[0]["python_version"])
assert.Equal(t, "3.4", axis[1]["python_version"])
2019-04-06 13:44:04 +00:00
}
var fakeMatrix = `
matrix:
go_version:
- go1
- go1.2
python_version:
- 3.2
- 3.3
django_version:
- 1.7
- 1.7.1
- 1.7.2
redis_version:
- 2.6
- 2.8
`
var fakeMatrixInclude = `
matrix:
include:
- go_version: 1.5
python_version: 3.4
- go_version: 1.6
python_version: 3.4
`