This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push: new 07f734c Fix #730: put example that demonstrate backward compatibility works 07f734c is described below commit 07f734c68969c64fc80654dc509c17695c3c43ac Author: nferraro <ni.ferr...@gmail.com> AuthorDate: Wed Jul 24 16:02:43 2019 +0200 Fix #730: put example that demonstrate backward compatibility works --- e2e/backward_compat_test.go | 81 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/e2e/backward_compat_test.go b/e2e/backward_compat_test.go new file mode 100644 index 0000000..54573aa --- /dev/null +++ b/e2e/backward_compat_test.go @@ -0,0 +1,81 @@ +// +build integration + +// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration" + +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You 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 e2e + +import ( + "testing" + + "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" + "github.com/apache/camel-k/pkg/util/kubernetes" + . "github.com/onsi/gomega" + "github.com/stretchr/testify/assert" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +func TestBackwardCompatibility(t *testing.T) { + withNewTestNamespace(func(ns string) { + RegisterTestingT(t) + + data := ` +apiVersion: ` + v1alpha1.SchemeGroupVersion.String() + ` +kind: Integration +metadata: + name: example + namespace: ` + ns + ` +spec: + thisDoesNotBelongToSpec: hi + sources: + - name: hello.groovy +status: + thisNeitherBelongs: + at: all +` + + obj, err := kubernetes.LoadRawResourceFromYaml(data) + assert.Nil(t, err) + err = testClient.Create(testContext, obj) + assert.Nil(t, err) + + integration := v1alpha1.NewIntegration(ns, "example") + key, err := client.ObjectKeyFromObject(&integration) + assert.Nil(t, err) + + unstr := unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "Integration", + "apiVersion": v1alpha1.SchemeGroupVersion.String(), + }, + } + err = testClient.Get(testContext, key, &unstr) + assert.Nil(t, err) + spec := unstr.Object["spec"] + assert.NotNil(t, spec) + attr := spec.(map[string]interface{})["thisDoesNotBelongToSpec"] + assert.Equal(t, "hi", attr) + + err = testClient.Get(testContext, key, &integration) + assert.Nil(t, err) + assert.Equal(t, 1, len(integration.Spec.Sources)) + assert.Equal(t, "hello.groovy", integration.Spec.Sources[0].Name) + }) +}