github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/controller/builder/builder_pdb_test.go (about) 1 /* 2 Copyright (C) 2022-2023 ApeCloud Co., Ltd 3 4 This file is part of KubeBlocks project 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU Affero General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU Affero General Public License for more details. 15 16 You should have received a copy of the GNU Affero General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package builder 21 22 import ( 23 . "github.com/onsi/ginkgo/v2" 24 . "github.com/onsi/gomega" 25 "k8s.io/apimachinery/pkg/util/intstr" 26 ) 27 28 var _ = Describe("pdb builder", func() { 29 It("should work well", func() { 30 const ( 31 name = "foo" 32 ns = "default" 33 selectorKey1, selectorValue1 = "foo-1", "bar-1" 34 selectorKey2, selectorValue2 = "foo-2", "bar-2" 35 selectorKey3, selectorValue3 = "foo-3", "bar-3" 36 selectorKey4, selectorValue4 = "foo-4", "bar-4" 37 ) 38 selectors := map[string]string{selectorKey4: selectorValue4} 39 minAvailable := intstr.FromInt(3) 40 pdb := NewPDBBuilder(ns, name). 41 AddSelector(selectorKey1, selectorValue1). 42 AddSelectors(selectorKey2, selectorValue2, selectorKey3, selectorValue3). 43 AddSelectorsInMap(selectors). 44 SetMinAvailable(minAvailable). 45 GetObject() 46 47 Expect(pdb.Name).Should(Equal(name)) 48 Expect(pdb.Namespace).Should(Equal(ns)) 49 Expect(pdb.Spec.Selector).ShouldNot(BeNil()) 50 Expect(pdb.Spec.Selector.MatchLabels).ShouldNot(BeNil()) 51 Expect(pdb.Spec.Selector).ShouldNot(BeNil()) 52 Expect(pdb.Spec.Selector.MatchLabels).Should(HaveLen(4)) 53 Expect(pdb.Spec.Selector.MatchLabels[selectorKey1]).Should(Equal(selectorValue1)) 54 Expect(pdb.Spec.Selector.MatchLabels[selectorKey2]).Should(Equal(selectorValue2)) 55 Expect(pdb.Spec.Selector.MatchLabels[selectorKey3]).Should(Equal(selectorValue3)) 56 Expect(pdb.Spec.Selector.MatchLabels[selectorKey4]).Should(Equal(selectorValue4)) 57 Expect(pdb.Spec.MinAvailable).ShouldNot(BeNil()) 58 Expect(*pdb.Spec.MinAvailable).Should(Equal(minAvailable)) 59 }) 60 })