Added unit tests for the controller and sidecar packages. Signed-off-by: Yannis Zarkadas <yanniszarkadas@gmail.com>
71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
/*
|
||
Copyright 2018 The Rook Authors. All rights reserved.
|
||
|
||
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 sidecar
|
||
|
||
import (
|
||
"bytes"
|
||
"testing"
|
||
)
|
||
|
||
func TestMergeYAMLs(t *testing.T) {
|
||
tests := []struct {
|
||
initial []byte
|
||
override []byte
|
||
result []byte
|
||
expectedErr bool
|
||
}{
|
||
{
|
||
[]byte("key: value"),
|
||
[]byte("key: override_value"),
|
||
[]byte("key: override_value\n"),
|
||
false,
|
||
},
|
||
{
|
||
[]byte("#comment"),
|
||
[]byte("key: value"),
|
||
[]byte("key: value\n"),
|
||
false,
|
||
},
|
||
{
|
||
[]byte("key: value"),
|
||
[]byte("#comment"),
|
||
[]byte("key: value\n"),
|
||
false,
|
||
},
|
||
{
|
||
[]byte("key1:\n nestedkey1: nestedvalue1"),
|
||
[]byte("key1:\n nestedkey1: nestedvalue2"),
|
||
[]byte("key1:\n nestedkey1: nestedvalue2\n"),
|
||
false,
|
||
},
|
||
}
|
||
|
||
for _, test := range tests {
|
||
result, err := mergeYAMLs(test.initial, test.override)
|
||
if !bytes.Equal(result, test.result) {
|
||
t.Errorf("Merge of '%s' and '%s' was incorrect,\n got: %s,\n want: %s.",
|
||
test.initial, test.override, result, test.result)
|
||
}
|
||
if err == nil && test.expectedErr {
|
||
t.Errorf("Expected error.")
|
||
}
|
||
if err != nil && !test.expectedErr {
|
||
t.Logf("Got an error as expected: %s", err.Error())
|
||
}
|
||
}
|
||
}
|