github.com/cilium/cilium@v1.16.2/operator/pkg/ciliumendpointslice/ceptocesmap_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package ciliumendpointslice 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestCepToCESCounts(t *testing.T) { 13 testCases := []struct { 14 name string 15 cepName CEPName 16 cesName CESName 17 count int 18 }{ 19 { 20 name: "Insert CEPs - 1", 21 cepName: NewCEPName("cilium-adf8-kube-system", "ns"), 22 cesName: NewCESName("ces-dfbkjswert-twis"), 23 count: 1, 24 }, 25 { 26 name: "Insert CEPs - 2", 27 cepName: NewCEPName("cilium-dtyr-kube-system", "ns"), 28 cesName: NewCESName("ces-dfbkjswert-twis"), 29 count: 2, 30 }, 31 { 32 name: "Insert CEPs - 3", 33 cepName: NewCEPName("cilium-fgh8-kube-system", "ns"), 34 cesName: NewCESName("ces-dfbkjswert-twis"), 35 count: 3, 36 }, 37 { 38 name: "Insert CEPs - 4", 39 cepName: NewCEPName("cilium-cspn-kube-system", "ns"), 40 cesName: NewCESName("ces-dfbkjswert-twis"), 41 count: 4, 42 }, 43 { 44 name: "Check same CEP-name with CES name", 45 cepName: NewCEPName("cilium-cspn-kube-system", "ns"), 46 cesName: NewCESName("ces-dfbkjswert-0wis"), 47 count: 4, 48 }, 49 } 50 cmap := newCESToCEPMapping() 51 52 // Insert new CEPs in cepCache map and check its total count 53 for _, tc := range testCases { 54 t.Run(tc.name, func(*testing.T) { 55 cmap.insertCES(CESName(tc.cesName), "ns") 56 cmap.insertCEP(CEPName(tc.cepName), CESName(tc.cesName)) 57 assert.Equal(t, cmap.countCEPs(), tc.count, "Number of CEP entries in cmap should match with Count") 58 assert.Equal(t, cmap.hasCEP(tc.cepName), true, "CEP name should present in cmap") 59 assert.Equal(t, cmap.hasCEP(NewCEPName("not-really-cep", "ns")), false, "Random string should NOT present in cmap as Key") 60 }) 61 } 62 63 // Insert and remove CEPs in cepCache and check for any stale entries present in cepCache. 64 for _, tc := range testCases { 65 t.Run(tc.name, func(*testing.T) { 66 cmap.insertCES(CESName(tc.cesName), "ns") 67 cmap.insertCEP(tc.cepName, tc.cesName) 68 cesName, ok := cmap.getCESName(tc.cepName) 69 assert.Equal(t, ok, true, "CEP name should be there in map") 70 assert.Equal(t, cesName, tc.cesName, "CEP name should match with cesName") 71 cmap.deleteCEP(tc.cepName) 72 assert.Equal(t, cmap.hasCEP(tc.cepName), false, "CEP name is removed from cache, so it shouldn't be in cache") 73 }) 74 } 75 76 }