blob: 1a99a96ac7a8ea3b70e7ef6ead7778125cf832ab [file] [log] [blame]
// 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"
)
import (
"github.com/apache/dubbo-go-pixiu/operator/pkg/manifest"
"github.com/apache/dubbo-go-pixiu/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: dubbo-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)
}
})
}
}