Skip to content

Commit 75931e2

Browse files
add tests for coverage
Signed-off-by: YiscahLevySilas1 <[email protected]>
1 parent a12f9cc commit 75931e2

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package objectsenvelopes
2+
3+
import (
4+
"testing"
5+
6+
cloudsupportv1 "github.com/kubescape/k8s-interface/cloudsupport/v1"
7+
"github.com/kubescape/k8s-interface/workloadinterface"
8+
"github.com/kubescape/opa-utils/objectsenvelopes/hostsensor"
9+
"github.com/kubescape/opa-utils/objectsenvelopes/localworkload"
10+
"github.com/stretchr/testify/assert"
11+
)
12+
13+
func TestNewObject(t *testing.T) {
14+
// Test nil input
15+
assert.Nil(t, NewObject(nil))
16+
17+
// Test valid input
18+
object := map[string]interface{}{
19+
"kind": "Pod",
20+
"apiVersion": "v1",
21+
"metadata": map[string]interface{}{
22+
"name": "test-pod",
23+
},
24+
}
25+
workloadObj := NewObject(object)
26+
assert.NotNil(t, workloadObj)
27+
assert.Equal(t, "Pod", workloadObj.GetKind())
28+
29+
// Test unsupported input
30+
unsupportedObject := map[string]interface{}{
31+
"unknown": "unknown",
32+
}
33+
assert.Nil(t, NewObject(unsupportedObject))
34+
}
35+
36+
func TestGetObjectType(t *testing.T) {
37+
// Test unsupported input
38+
unsupportedObject := map[string]interface{}{
39+
"unknown": "unknown",
40+
}
41+
assert.Equal(t, workloadinterface.TypeUnknown, GetObjectType(unsupportedObject))
42+
43+
// Test RegoResponseVectorObject
44+
relatedObjects := []map[string]interface{}{}
45+
relatedObject := getMock(role)
46+
relatedObject2 := getMock(rolebinding)
47+
relatedObjects = append(relatedObjects, relatedObject)
48+
relatedObjects = append(relatedObjects, relatedObject2)
49+
subject := map[string]interface{}{"name": "[email protected]", "kind": "User", "namespace": "default", "group": "rbac.authorization.k8s.io", RelatedObjectsKey: relatedObjects}
50+
assert.Equal(t, TypeRegoResponseVectorObject, GetObjectType(subject))
51+
52+
// Test CloudProviderDescribe
53+
cloudProviderDescribe := map[string]interface{}{
54+
"apiVersion": "container.googleapis.com/v1",
55+
"kind": "ClusterDescribe",
56+
}
57+
assert.Equal(t, cloudsupportv1.TypeCloudProviderDescribe, GetObjectType(cloudProviderDescribe))
58+
59+
// Test HostSensor
60+
hostSensor := map[string]interface{}{
61+
"apiVersion": "hostdata.kubescape.cloud/v1",
62+
"metadata": map[string]interface{}{
63+
"name": "test-pod",
64+
},
65+
}
66+
assert.Equal(t, hostsensor.TypeHostSensor, GetObjectType(hostSensor))
67+
68+
// Test LocalWorkload
69+
localWorkload := map[string]interface{}{
70+
"kind": "b",
71+
"sourcePath": "/path/file",
72+
}
73+
assert.Equal(t, localworkload.TypeLocalWorkload, GetObjectType(localWorkload))
74+
75+
// Test WorkloadObject
76+
workloadObject := map[string]interface{}{
77+
"kind": "Pod",
78+
"apiVersion": "v1",
79+
"metadata": map[string]interface{}{
80+
"name": "test-pod",
81+
},
82+
}
83+
assert.Equal(t, workloadinterface.TypeWorkloadObject, GetObjectType(workloadObject))
84+
85+
// Test ListWorkloads
86+
listWorkloads := map[string]interface{}{
87+
"kind": "List",
88+
"items": []interface{}{
89+
map[string]interface{}{
90+
"kind": "Pod",
91+
"metadata": map[string]interface{}{
92+
"name": "test-pod",
93+
},
94+
},
95+
},
96+
}
97+
assert.Equal(t, workloadinterface.TypeListWorkloads, GetObjectType(listWorkloads))
98+
}
99+
100+
// // Test BaseObject
101+
// baseObject := map[string]interface{}{
102+
// "kind": "Pod",
103+
// "metadata": map[string]interface{}{
104+
// "name": "test-pod",
105+
// },
106+
// }
107+
// assert.Equal(t

0 commit comments

Comments
 (0)