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 <[email protected]>
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)
+ })
+}