Files
kubescape/resourcehandler/k8sresourcesutils_test.go
2021-12-01 12:35:09 +02:00

83 lines
2.1 KiB
Go

package resourcehandler
import (
"github.com/armosec/k8s-interface/k8sinterface"
"github.com/armosec/opa-utils/reporthandling"
"testing"
)
func TestGetK8sResources(t *testing.T) {
// getK8sResources
}
func TestSetResourceMap(t *testing.T) {
k8sinterface.InitializeMapResourcesMock()
framework := reporthandling.MockFrameworkA()
k8sResources := setResourceMap([]reporthandling.Framework{*framework})
resources := k8sinterface.ResourceGroupToString("*", "v1", "Pod")
if len(resources) == 0 {
t.Error("expected resources")
}
_, ok := (*k8sResources)[resources[0]]
if !ok {
t.Errorf("missing: 'apps'. k8sResources: %v", k8sResources)
}
}
func TestInsertK8sResources(t *testing.T) {
// insertK8sResources
k8sResources := make(map[string]map[string]map[string]interface{})
match1 := reporthandling.RuleMatchObjects{
APIGroups: []string{"apps"},
APIVersions: []string{"v1", "v1beta"},
Resources: []string{"pods"},
}
match2 := reporthandling.RuleMatchObjects{
APIGroups: []string{"apps"},
APIVersions: []string{"v1"},
Resources: []string{"deployments"},
}
match3 := reporthandling.RuleMatchObjects{
APIGroups: []string{"core"},
APIVersions: []string{"v1"},
Resources: []string{"secrets"},
}
insertK8sResources(k8sResources, match1)
insertK8sResources(k8sResources, match2)
insertK8sResources(k8sResources, match3)
apiGroup1, ok := k8sResources["apps"]
if !ok {
t.Errorf("missing: 'apps'. k8sResources: %v", k8sResources)
return
}
apiVersion1, ok := apiGroup1["v1"]
if !ok {
t.Errorf("missing: 'v1'. k8sResources: %v", k8sResources)
return
}
_, ok = apiVersion1["pods"]
if !ok {
t.Errorf("missing: 'pods'. k8sResources: %v", k8sResources)
}
_, ok = apiVersion1["deployments"]
if !ok {
t.Errorf("missing: 'deployments'. k8sResources: %v", k8sResources)
}
apiVersion2, ok := apiGroup1["v1beta"]
if !ok {
t.Errorf("missing: 'v1beta'. k8sResources: %v", k8sResources)
return
}
_, ok = apiVersion2["pods"]
if !ok {
t.Errorf("missing: 'pods'. k8sResources: %v", k8sResources)
}
_, ok = k8sResources["core"]
if !ok {
t.Errorf("missing: 'core'. k8sResources: %v", k8sResources)
return
}
}