blob: bd630de713a26d3c76a6de4d33e048758e8982dd [file] [log] [blame]
// 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 application_test
import (
"github.com/apache/airflow-on-k8s-operator/pkg/controller/application"
app "github.com/kubernetes-sigs/application/pkg/apis/app/v1beta1"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-reconciler/pkg/reconciler"
"sigs.k8s.io/controller-reconciler/pkg/reconciler/manager/k8s"
)
var _ = Describe("Application", func() {
BeforeEach(func() {
})
labels := map[string]string{
"k1": "v1",
"k2": "v2",
"k3": "v3",
}
var resources []reconciler.Object = []reconciler.Object{
{
Lifecycle: reconciler.LifecycleManaged,
Type: k8s.Type,
Obj: &k8s.Object{
ObjList: &appsv1.DeploymentList{},
Obj: &appsv1.Deployment{
TypeMeta: metav1.TypeMeta{
Kind: "k3",
APIVersion: "v4",
},
ObjectMeta: metav1.ObjectMeta{
Name: "n-deploy",
Namespace: "ns",
Labels: labels,
},
},
},
},
{
Lifecycle: reconciler.LifecycleManaged,
Type: k8s.Type,
Obj: &k8s.Object{
ObjList: &corev1.ConfigMapList{},
Obj: &corev1.ConfigMap{
TypeMeta: metav1.TypeMeta{
Kind: "k1",
APIVersion: "v2",
},
ObjectMeta: metav1.ObjectMeta{
Name: "n-cm",
Namespace: "ns",
Labels: labels,
},
Data: map[string]string{
"test-key": "test-value",
},
},
},
},
}
a := application.NewApplication(&app.Application{})
Describe("Status", func() {
It("Sets Component Group Kind", func(done Done) {
a.SetComponentGK(resources)
Expect(len(a.Spec.ComponentGroupKinds)).To(Equal(len(resources)))
close(done)
})
It("Sets Selector", func(done Done) {
a.SetSelector(labels)
Expect(a.Spec.Selector.MatchLabels).To(Equal(labels))
close(done)
})
It("Sets Meta Name Namespace Labels", func(done Done) {
a.SetName("somename").SetNamespace("somens").SetLabels(labels)
Expect(a.ObjectMeta.Name).To(Equal("somename"))
Expect(a.ObjectMeta.Namespace).To(Equal("somens"))
Expect(a.ObjectMeta.Labels).To(Equal(labels))
close(done)
})
})
})