You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/08/04 16:32:43 UTC
[camel-k] 03/03: Fix #2530: fix test to check actual resources on
the namespace
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch release-1.5.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit be736c4090bc10b267aa408209e41f46941f07ef
Author: nicolaferraro <ni...@gmail.com>
AuthorDate: Thu Jul 29 13:46:46 2021 +0200
Fix #2530: fix test to check actual resources on the namespace
---
pkg/trait/pull_secret_test.go | 94 ++++++++++++++++++++++++++++++++++---------
1 file changed, 74 insertions(+), 20 deletions(-)
diff --git a/pkg/trait/pull_secret_test.go b/pkg/trait/pull_secret_test.go
index a1499e0..44ee3ef 100644
--- a/pkg/trait/pull_secret_test.go
+++ b/pkg/trait/pull_secret_test.go
@@ -18,32 +18,23 @@ limitations under the License.
package trait
import (
+ "context"
"testing"
v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
"github.com/apache/camel-k/pkg/util/kubernetes"
+ "github.com/apache/camel-k/pkg/util/test"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
+ rbacv1 "k8s.io/api/rbac/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "sigs.k8s.io/controller-runtime/pkg/client"
"github.com/stretchr/testify/assert"
)
func TestPullSecret(t *testing.T) {
- e := &Environment{}
- e.Integration = &v1.Integration{
- Status: v1.IntegrationStatus{
- Phase: v1.IntegrationPhaseDeploying,
- },
- }
-
- deployment := appsv1.Deployment{
- Spec: appsv1.DeploymentSpec{
- Template: corev1.PodTemplateSpec{
- Spec: corev1.PodSpec{},
- },
- },
- }
- e.Resources = kubernetes.NewCollection(&deployment)
+ e, deployment := getEnvironmentAndDeployment(t)
trait := newPullSecretTrait().(*pullSecretTrait)
trait.SecretName = "xxxy"
@@ -57,15 +48,66 @@ func TestPullSecret(t *testing.T) {
}
func TestPullSecretDoesNothingWhenNotSetOnPlatform(t *testing.T) {
+ e, _ := getEnvironmentAndDeployment(t)
+ e.Platform = &v1.IntegrationPlatform{}
+
+ trait := newPullSecretTrait()
+ enabled, err := trait.Configure(e)
+ assert.Nil(t, err)
+ assert.False(t, enabled)
+}
+
+func TestPullSecretAuto(t *testing.T) {
+ e, _ := getEnvironmentAndDeployment(t)
+
+ trait := newPullSecretTrait().(*pullSecretTrait)
+ trait.Auto = newFalse()
+ enabled, err := trait.Configure(e)
+ assert.Nil(t, err)
+ assert.False(t, enabled)
+}
+
+func TestPullSecretImagePullerDelegation(t *testing.T) {
+ e, _ := getEnvironmentAndDeployment(t)
+
+ trait := newPullSecretTrait().(*pullSecretTrait)
+ trait.Auto = newFalse()
+ trait.ImagePullerDelegation = newTrue()
+ enabled, err := trait.Configure(e)
+ assert.Nil(t, err)
+ assert.True(t, enabled)
+ assert.True(t, *trait.ImagePullerDelegation)
+
+ err = trait.Apply(e)
+ assert.NoError(t, err)
+
+ var roleBinding rbacv1.RoleBinding
+ roleBindingKey := client.ObjectKey{
+ Namespace: "test",
+ Name: "camel-k-puller-test-default",
+ }
+ err = e.Client.Get(e.C, roleBindingKey, &roleBinding)
+ assert.NoError(t, err)
+ assert.Len(t, roleBinding.Subjects, 1)
+}
+
+func getEnvironmentAndDeployment(t *testing.T) (*Environment, *appsv1.Deployment) {
e := &Environment{}
e.Integration = &v1.Integration{
+ ObjectMeta: metav1.ObjectMeta{
+ Namespace: "test",
+ Name: "myit",
+ },
Status: v1.IntegrationStatus{
Phase: v1.IntegrationPhaseDeploying,
},
}
- e.Platform = &v1.IntegrationPlatform{}
deployment := appsv1.Deployment{
+ ObjectMeta: metav1.ObjectMeta{
+ Namespace: "test",
+ Name: "myit",
+ },
Spec: appsv1.DeploymentSpec{
Template: corev1.PodTemplateSpec{
Spec: corev1.PodSpec{},
@@ -74,8 +116,20 @@ func TestPullSecretDoesNothingWhenNotSetOnPlatform(t *testing.T) {
}
e.Resources = kubernetes.NewCollection(&deployment)
- trait := newPullSecretTrait()
- enabled, err := trait.Configure(e)
- assert.Nil(t, err)
- assert.False(t, enabled)
+ var err error
+ e.C = context.TODO()
+ e.Client, err = test.NewFakeClient(e.Integration, &deployment)
+ assert.NoError(t, err)
+
+ return e, &deployment
+}
+
+func newFalse() *bool {
+ b := false
+ return &b
+}
+
+func newTrue() *bool {
+ b := true
+ return &b
}