mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-08-20 21:16:49 +00:00
feat: upstream enterprise preview --------- Signed-off-by: Oliver Baehler <oliver@sudo-i.net> Co-authored-by: CorentinPtrl <pitrel.corentin@gmail.com>
113 lines
2.6 KiB
Go
113 lines
2.6 KiB
Go
// Copyright 2020-2026 Project Capsule Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package rbac_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/projectcapsule/capsule/pkg/api/rbac"
|
|
)
|
|
|
|
func TestOwnerListSpec_FindOwner(t *testing.T) {
|
|
bla := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.UserOwner,
|
|
Name: "bla",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.IngressClassesProxy,
|
|
Operations: []rbac.ProxyOperation{"Delete"},
|
|
},
|
|
},
|
|
}
|
|
bar := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.GroupOwner,
|
|
Name: "bar",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.StorageClassesProxy,
|
|
Operations: []rbac.ProxyOperation{"Delete"},
|
|
},
|
|
},
|
|
}
|
|
baz := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.UserOwner,
|
|
Name: "baz",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.StorageClassesProxy,
|
|
Operations: []rbac.ProxyOperation{"Update"},
|
|
},
|
|
},
|
|
}
|
|
fim := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.ServiceAccountOwner,
|
|
Name: "fim",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.NodesProxy,
|
|
Operations: []rbac.ProxyOperation{"List"},
|
|
},
|
|
},
|
|
}
|
|
bom := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.GroupOwner,
|
|
Name: "bom",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.StorageClassesProxy,
|
|
Operations: []rbac.ProxyOperation{"Delete"},
|
|
},
|
|
{
|
|
Kind: rbac.NodesProxy,
|
|
Operations: []rbac.ProxyOperation{"Delete"},
|
|
},
|
|
},
|
|
}
|
|
qip := rbac.OwnerSpec{
|
|
CoreOwnerSpec: rbac.CoreOwnerSpec{
|
|
UserSpec: rbac.UserSpec{
|
|
Kind: rbac.ServiceAccountOwner,
|
|
Name: "qip",
|
|
},
|
|
},
|
|
ProxyOperations: []rbac.ProxySettings{
|
|
{
|
|
Kind: rbac.StorageClassesProxy,
|
|
Operations: []rbac.ProxyOperation{"List", "Delete"},
|
|
},
|
|
},
|
|
}
|
|
owners := rbac.OwnerListSpec{bom, qip, bla, bar, baz, fim}
|
|
|
|
assert.Equal(t, owners.FindOwner("bom", rbac.GroupOwner), bom)
|
|
assert.Equal(t, owners.FindOwner("qip", rbac.ServiceAccountOwner), qip)
|
|
assert.Equal(t, owners.FindOwner("bla", rbac.UserOwner), bla)
|
|
assert.Equal(t, owners.FindOwner("bar", rbac.GroupOwner), bar)
|
|
assert.Equal(t, owners.FindOwner("baz", rbac.UserOwner), baz)
|
|
assert.Equal(t, owners.FindOwner("fim", rbac.ServiceAccountOwner), fim)
|
|
assert.Equal(t, owners.FindOwner("notfound", rbac.ServiceAccountOwner), rbac.OwnerSpec{})
|
|
}
|