2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 // platform project (RICP).
27 "github.com/stretchr/testify/assert"
29 metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30 "k8s.io/apimachinery/pkg/runtime"
31 "k8s.io/client-go/kubernetes/fake"
35 type TestStruct struct {
42 func initKubernetesManagerTest(t *testing.T) *KubernetesManager {
43 logger, err := logger.InitLogger(logger.DebugLevel)
45 t.Errorf("#... - failed to initialize logger, error: %s", err)
47 config := &configuration.Configuration{}
48 config.Kubernetes.KubeNamespace = "oran"
49 config.Kubernetes.ConfigPath = "somePath"
51 kubernetesManager := NewKubernetesManager(logger, config)
53 return kubernetesManager
56 func TestDelete_NoPodName(t *testing.T) {
58 description: "2 namespace, 2 pods in oran",
60 objs: []runtime.Object{pod("oran", "POD_Test_1"), pod("oran", "POD_Test_2"), pod("some-namespace", "POD_Test_1")},
63 kubernetesManager := initKubernetesManagerTest(t)
65 t.Run(test.description, func(t *testing.T) {
66 kubernetesManager.ClientSet = fake.NewSimpleClientset(test.objs...)
68 err := kubernetesManager.DeletePod("")
73 func TestDelete_NoPods(t *testing.T) {
75 description: "no pods",
81 kubernetesManager := initKubernetesManagerTest(t)
83 t.Run(test.description, func(t *testing.T) {
84 kubernetesManager.ClientSet = fake.NewSimpleClientset(test.objs...)
86 err := kubernetesManager.DeletePod("POD_Test")
91 func TestDelete_PodExists(t *testing.T) {
93 description: "2 namespace, 2 pods in oran",
95 objs: []runtime.Object{pod("oran", "POD_Test_1"), pod("oran", "POD_Test_2"), pod("some-namespace", "POD_Test_1")},
98 kubernetesManager := initKubernetesManagerTest(t)
100 t.Run(test.description, func(t *testing.T) {
101 kubernetesManager.ClientSet = fake.NewSimpleClientset(test.objs...)
103 err := kubernetesManager.DeletePod("POD_Test_1")
108 func TestDelete_NoPodInNamespace(t *testing.T) {
110 description: "2 namespace, 2 pods in oran",
112 objs: []runtime.Object{pod("oran", "POD_Test_1"), pod("oran", "POD_Test_2"), pod("some-namespace", "POD_Test")},
115 kubernetesManager := initKubernetesManagerTest(t)
117 t.Run(test.description, func(t *testing.T) {
118 kubernetesManager.ClientSet = fake.NewSimpleClientset(test.objs...)
120 err := kubernetesManager.DeletePod("POD_Test")
121 assert.NotNil(t, err)
125 func TestDelete_NoNamespace(t *testing.T) {
127 description: "No oran namespace",
129 objs: []runtime.Object{pod("some-namespace", "POD_Test_1"), pod("some-namespace", "POD_Test_2"), pod("some-namespace", "POD_Test")},
132 kubernetesManager := initKubernetesManagerTest(t)
134 t.Run(test.description, func(t *testing.T) {
135 kubernetesManager.ClientSet = fake.NewSimpleClientset(test.objs...)
137 err := kubernetesManager.DeletePod("POD_Test")
138 assert.NotNil(t, err)
142 func pod(namespace, image string) *v1.Pod {
145 ObjectMeta: metaV1.ObjectMeta{
147 Namespace: namespace,
148 Annotations: map[string]string{},