forked from istio/istio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
profile-common_test.go
73 lines (69 loc) · 2.19 KB
/
profile-common_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright Istio 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.
package mesh
import (
"errors"
"testing"
"istio.io/istio/operator/pkg/manifest"
"istio.io/istio/operator/pkg/util/clog"
)
func TestParseYAMLFiles(t *testing.T) {
tests := []struct {
desc string
inYAML []string
inForce bool
inLogger clog.Logger
expectedOverlay string
expectedProfile string
expectedErr error
}{
{
desc: "array-pilot-plugins",
inYAML: []string{"testdata/profile-dump/input/pilot_plugin_valid.yaml"},
inForce: false,
inLogger: clog.NewDefaultLogger(),
expectedOverlay: `apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
spec:
values:
pilot:
plugins:
- aa
- bb `,
expectedProfile: "",
expectedErr: nil,
},
{
desc: "invalid-pilot-plugins",
inYAML: []string{"testdata/profile-dump/input/pilot_plugin_invalid.yaml"},
inForce: false,
inLogger: clog.NewDefaultLogger(),
expectedOverlay: "",
expectedProfile: "",
expectedErr: errors.New("json: cannot unmarshal object into Go value of type string"),
},
}
for _, tt := range tests {
t.Run(tt.desc, func(t *testing.T) {
gotOverlay, gotProfile, err := manifest.ParseYAMLFiles(tt.inYAML, tt.inForce, tt.inLogger)
if tt.expectedProfile != gotProfile || tt.expectedOverlay != gotOverlay ||
((tt.expectedErr != nil && err == nil) || (tt.expectedErr == nil && err != nil)) {
t.Errorf("%s: expect overlay, profile,&err %v %v %v, got %v %v %v", tt.desc, tt.expectedOverlay,
tt.expectedProfile, tt.expectedErr, gotOverlay, gotProfile, err)
}
})
}
}