1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-09 01:16:55 +00:00
kyverno/pkg/policystore/policystore_test.go
2019-11-11 11:10:25 -08:00

162 lines
2.3 KiB
Go

package policystore
import (
"encoding/json"
"testing"
kyverno "github.com/nirmata/kyverno/pkg/api/kyverno/v1alpha1"
)
func Test_Add(t *testing.T) {
rawPolicy1 := []byte(`
{
"apiVersion": "kyverno.io/v1alpha1",
"kind": "ClusterPolicy",
"metadata": {
"name": "test-policy"
},
"spec": {
"rules": [
{
"name": "r1",
"match": {
"resources": {
"kinds": [
"Pod"
]
}
},
"mutate": {
"overlay": "temp"
}
},
{
"name": "r2",
"match": {
"resources": {
"kinds": [
"Pod",
"Deployment"
]
}
},
"mutate": {
"overlay": "temp"
}
},
{
"name": "r3",
"match": {
"resources": {
"kinds": [
"Pod",
"Deployment"
],
"namespaces": [
"n1"
]
}
},
"mutate": {
"overlay": "temp"
}
},
{
"name": "r4",
"match": {
"resources": {
"kinds": [
"Pod",
"Deployment"
],
"namespaces": [
"n1",
"n2"
]
}
},
"validate": {
"pattern": "temp"
}
}
]
}
}
`)
rawPolicy2 := []byte(`
{
"apiVersion": "kyverno.io/v1alpha1",
"kind": "ClusterPolicy",
"metadata": {
"name": "test-policy1"
},
"spec": {
"rules": [
{
"name": "r1",
"match": {
"resources": {
"kinds": [
"Pod"
]
}
},
"mutate": {
"overlay": "temp"
}
},
{
"name": "r2",
"match": {
"resources": {
"kinds": [
"Pod"
],
"namespaces": [
"n4"
]
}
},
"mutate": {
"overlay": "temp"
}
},
{
"name": "r2",
"match": {
"resources": {
"kinds": [
"Pod"
],
"namespaces": [
"n4",
"n5",
"n6"
]
}
},
"validate": {
"pattern": "temp"
}
}
]
}
}`)
var policy1 kyverno.ClusterPolicy
json.Unmarshal(rawPolicy1, &policy1)
var policy2 kyverno.ClusterPolicy
json.Unmarshal(rawPolicy2, &policy2)
var store Interface
store = NewPolicyStore()
// Add
store.Register(policy1)
store.Register(policy2)
t.Log(store.LookUp(Mutation, "Pod", ""))
store.UnRegister(policy1)
t.Log(store.LookUp(Mutation, "Pod", ""))
store.Register(policy1)
t.Log(store.LookUp(Mutation, "Pod", ""))
t.Fail()
}