Skip to content
Snippets Groups Projects

Improve test coverage of rbac stuff

Merged Ghost User requested to merge 207-improve-test-coverage-of-rbac-stuff into develop
Files
16
+ 114
0
package api
import (
rbacImpl "code.fbi.h-da.de/danet/gosdn/controller/rbac"
"github.com/google/uuid"
)
// Name of this file requires _test at the end, because of how the availability of varibales is handled in test files of go packages.
// Does not include actual file tests!
const adminID = "5c248a22-8eb7-48cf-b392-45680a1863a5"
const userID = "57005d13-7a4d-493d-a02b-50ca51c40197"
const adminRoleID = "126683ae-5ff2-43ee-92f7-0e2b936f8c77"
const randomRoleName = "bertram"
var adminRoleMap = map[string]string{pndID: "admin"}
var userRoleMap = map[string]string{pndID: "user"}
func clearAndCreateAuthTestSetup() error {
//clear setup if changed
storedUsers, err := userService.GetAll()
if err != nil {
return err
}
for _, u := range storedUsers {
err = userService.Delete(u)
if err != nil {
return err
}
}
storedRoles, err := roleService.GetAll()
if err != nil {
return err
}
for _, r := range storedRoles {
err = roleService.Delete(r)
if err != nil {
return err
}
}
// create dataset
err = createTestUsers()
if err != nil {
return err
}
err = createTestRoles()
if err != nil {
return err
}
return nil
}
//TODO(faseid): change password to hashed/encrypted one
func createTestUsers() error {
randomRoleMap := map[string]string{pndID: randomRoleName}
users := []rbacImpl.User{
{UserID: uuid.MustParse(adminID), UserName: "testAdmin", Roles: adminRoleMap, Password: "admin"},
{UserID: uuid.MustParse(userID), UserName: "testUser", Roles: userRoleMap, Password: "user"},
{UserID: uuid.New(), UserName: "testRandom", Roles: randomRoleMap, Password: "aurelius", Token: "wrong token"},
}
for _, u := range users {
err := userService.Add(rbacImpl.NewUser(u.ID(), u.Name(), u.Roles, u.Password, ""))
if err != nil {
return err
}
}
return nil
}
func createTestRoles() error {
roles := []rbacImpl.Role{
{
RoleID: uuid.MustParse(adminRoleID),
RoleName: "adminTestRole",
Description: "Admin",
Permissions: []string{
"/gosdn.core.CoreService/GetPnd",
"/gosdn.core.CoreService/GetPndList",
},
},
{
RoleID: uuid.New(),
RoleName: "userTestRole",
Description: "User",
Permissions: []string{
"/gosdn.pnd.PndService/GetChangeList",
},
},
{
RoleID: uuid.New(),
RoleName: randomRoleName,
Description: "Not a role",
Permissions: []string{
"nope",
},
},
}
for _, r := range roles {
err := roleService.Add(rbacImpl.NewRole(r.ID(), r.Name(), r.Description, r.Permissions))
if err != nil {
return err
}
}
return nil
}
Loading