Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
goSDN
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
danet
goSDN
Commits
cfb77bfb
Commit
cfb77bfb
authored
3 years ago
by
Fabian Seidl
Browse files
Options
Downloads
Patches
Plain Diff
added tests for api roles, minor style changes to other file
parent
91c10a43
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
controller/api/role_test.go
+378
-0
378 additions, 0 deletions
controller/api/role_test.go
controller/northbound/server/role_test.go
+10
-3
10 additions, 3 deletions
controller/northbound/server/role_test.go
with
388 additions
and
3 deletions
controller/api/role_test.go
0 → 100644
+
378
−
0
View file @
cfb77bfb
package
api
import
(
"context"
"reflect"
"testing"
apb
"code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac"
"github.com/google/uuid"
)
func
TestCreateRoles
(
t
*
testing
.
T
)
{
type
args
struct
{
ctx
context
.
Context
addr
string
roles
[]
*
apb
.
Role
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
CreateRolesResponse
wantErr
bool
}{
{
name
:
"default create roles"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
roles
:
[]
*
apb
.
Role
{
{
Name
:
"new role 1"
,
Description
:
"Role 1"
,
Permissions
:
[]
string
{
"permission 1"
,
"permission 2"
},
},
},
},
want
:
&
apb
.
CreateRolesResponse
{
Status
:
apb
.
Status_STATUS_OK
,
},
wantErr
:
false
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
CreateRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
,
tt
.
args
.
roles
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"CreateRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.CreateRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
})
}
}
func
TestGetRole
(
t
*
testing
.
T
)
{
type
args
struct
{
ctx
context
.
Context
addr
string
name
string
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
GetRoleResponse
wantErr
bool
}{
{
name
:
"default get role"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
name
:
"adminTestRole"
,
},
want
:
&
apb
.
GetRoleResponse
{
Status
:
apb
.
Status_STATUS_OK
,
Role
:
&
apb
.
Role
{
Name
:
"adminTestRole"
,
Description
:
"Admin"
,
},
},
wantErr
:
false
,
},
{
name
:
"error get role"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
name
:
"not role"
,
},
want
:
nil
,
wantErr
:
true
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
GetRole
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
,
tt
.
args
.
name
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"GetRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
got
.
Role
.
Name
!=
tt
.
want
.
Role
.
Name
||
got
.
Role
.
Description
!=
tt
.
want
.
Role
.
Description
{
t
.
Errorf
(
"Role.GetRole() = %v, want %v"
,
got
,
tt
.
want
)
}
}
else
{
if
got
!=
nil
{
t
.
Errorf
(
"Role.GetRole() = %v, want %v"
,
got
,
tt
.
want
)
}
}
})
}
}
func
TestGetRoles
(
t
*
testing
.
T
)
{
err
:=
clearAndCreateAuthTestSetup
()
if
err
!=
nil
{
t
.
Fatalf
(
"%v"
,
err
)
}
type
args
struct
{
ctx
context
.
Context
addr
string
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
GetRolesResponse
wantLen
int
wantErr
bool
}{
{
name
:
"default get roless"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
},
want
:
&
apb
.
GetRolesResponse
{
Status
:
apb
.
Status_STATUS_OK
,
Roles
:
[]
*
apb
.
Role
{
{
Name
:
"adminTestRole"
,
Description
:
"Admin"
,
Permissions
:
[]
string
{
"/gosdn.core.CoreService/GetPnd"
,
"/gosdn.core.CoreService/GetPndList"
,
}},
{
Name
:
"userTestRole"
,
Description
:
"User"
,
Permissions
:
[]
string
{
"/gosdn.pnd.PndService/GetChangeList"
,
}},
{
Name
:
randomRoleName
,
Description
:
"Not a role"
,
Permissions
:
[]
string
{
"nope"
,
},
},
},
},
wantLen
:
3
,
wantErr
:
false
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
GetRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"GetRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
len
(
got
.
Roles
)
!=
3
{
t
.
Errorf
(
"Role.GetRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
for
_
,
gotR
:=
range
got
.
Roles
{
containsExpected
:=
false
for
_
,
wantR
:=
range
tt
.
want
.
Roles
{
gotPerm
:=
gotR
.
Permissions
wantPerm
:=
wantR
.
Permissions
if
gotR
.
Description
==
wantR
.
Description
&&
gotR
.
Name
==
wantR
.
Name
&&
reflect
.
DeepEqual
(
gotPerm
,
wantPerm
)
{
containsExpected
=
true
break
}
}
if
!
containsExpected
{
t
.
Errorf
(
"Role.GetRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
}
}
})
}
}
func
TestUpdateRoles
(
t
*
testing
.
T
)
{
type
args
struct
{
ctx
context
.
Context
addr
string
roles
[]
*
apb
.
Role
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
UpdateRolesResponse
wantErr
bool
}{
{
name
:
"default update roles"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
roles
:
[]
*
apb
.
Role
{
{
Id
:
adminRoleID
,
Name
:
"New Name"
,
},
},
},
want
:
&
apb
.
UpdateRolesResponse
{
Status
:
apb
.
Status_STATUS_OK
,
},
wantErr
:
false
,
},
{
name
:
"error update roles"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
roles
:
[]
*
apb
.
Role
{
{
Id
:
uuid
.
NewString
(),
Name
:
"New Name"
,
},
},
},
want
:
nil
,
wantErr
:
true
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
UpdateRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
,
tt
.
args
.
roles
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"UpdateRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.UpdateRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
})
}
}
func
TestDeletePermissionForRole
(
t
*
testing
.
T
)
{
clearAndCreateAuthTestSetup
()
type
args
struct
{
ctx
context
.
Context
addr
string
name
string
permissionsToDelete
[]
string
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
DeletePermissionsForRoleResponse
wantErr
bool
}{
{
name
:
"default delete permissions for role"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
name
:
"adminTestRole"
,
permissionsToDelete
:
[]
string
{
"/gosdn.core.CoreService/GetPnd"
,
"/gosdn.core.CoreService/GetPndList"
,
},
},
want
:
&
apb
.
DeletePermissionsForRoleResponse
{
Status
:
apb
.
Status_STATUS_OK
,
},
wantErr
:
false
,
},
{
name
:
"error delete permissions for role"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
name
:
"adminTestRole"
,
permissionsToDelete
:
[]
string
{
"foo"
,
},
},
want
:
nil
,
wantErr
:
true
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
DeletePermissionForRole
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
,
tt
.
args
.
name
,
tt
.
args
.
permissionsToDelete
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"DeletePermissionForRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.DeletePermissionsForRole() = %v, want %v"
,
got
,
tt
.
want
)
}
})
}
}
func
TestDeleteRoles
(
t
*
testing
.
T
)
{
type
args
struct
{
ctx
context
.
Context
addr
string
roleName
[]
string
}
tests
:=
[]
struct
{
name
string
args
args
want
*
apb
.
DeleteRolesResponse
wantErr
bool
}{
{
name
:
"default delete roles"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
roleName
:
[]
string
{
"userTestRole"
,
"adminTestRole"
,
},
},
want
:
&
apb
.
DeleteRolesResponse
{
Status
:
apb
.
Status_STATUS_OK
,
},
wantErr
:
false
,
},
{
name
:
"error delete roles"
,
args
:
args
{
ctx
:
context
.
TODO
(),
addr
:
testAPIEndpoint
,
roleName
:
[]
string
{
"no"
,
},
},
want
:
nil
,
wantErr
:
true
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
clearAndCreateAuthTestSetup
()
got
,
err
:=
DeleteRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
addr
,
tt
.
args
.
roleName
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"DeleteRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.DeleteRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
})
}
}
This diff is collapsed.
Click to expand it.
controller/northbound/server/role_test.go
+
10
−
3
View file @
cfb77bfb
...
@@ -101,6 +101,7 @@ func TestRole_GetRole(t *testing.T) {
...
@@ -101,6 +101,7 @@ func TestRole_GetRole(t *testing.T) {
t
.
Errorf
(
"Role.GetRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
t
.
Errorf
(
"Role.GetRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
return
}
}
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
got
.
Role
.
Name
!=
tt
.
want
.
Role
.
Name
||
got
.
Role
.
Description
!=
tt
.
want
.
Role
.
Description
{
if
got
.
Role
.
Name
!=
tt
.
want
.
Role
.
Name
||
got
.
Role
.
Description
!=
tt
.
want
.
Role
.
Description
{
t
.
Errorf
(
"Role.GetRole() = %v, want %v"
,
got
,
tt
.
want
)
t
.
Errorf
(
"Role.GetRole() = %v, want %v"
,
got
,
tt
.
want
)
...
@@ -174,6 +175,7 @@ func TestRole_GetRoles(t *testing.T) {
...
@@ -174,6 +175,7 @@ func TestRole_GetRoles(t *testing.T) {
t
.
Errorf
(
"Role.GetRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
t
.
Errorf
(
"Role.GetRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
return
}
}
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
got
!=
nil
&&
got
.
Status
==
tt
.
want
.
Status
{
if
len
(
got
.
Roles
)
!=
3
{
if
len
(
got
.
Roles
)
!=
3
{
t
.
Errorf
(
"Role.GetRoles() = %v, want %v"
,
got
,
tt
.
want
)
t
.
Errorf
(
"Role.GetRoles() = %v, want %v"
,
got
,
tt
.
want
)
...
@@ -252,6 +254,7 @@ func TestRole_UpdateRoles(t *testing.T) {
...
@@ -252,6 +254,7 @@ func TestRole_UpdateRoles(t *testing.T) {
t
.
Errorf
(
"Role.UpdateRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
t
.
Errorf
(
"Role.UpdateRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
return
}
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.UpdateRoles() = %v, want %v"
,
got
,
tt
.
want
)
t
.
Errorf
(
"Role.UpdateRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
}
...
@@ -261,6 +264,7 @@ func TestRole_UpdateRoles(t *testing.T) {
...
@@ -261,6 +264,7 @@ func TestRole_UpdateRoles(t *testing.T) {
func
TestRole_DeletePermissionsForRole
(
t
*
testing
.
T
)
{
func
TestRole_DeletePermissionsForRole
(
t
*
testing
.
T
)
{
clearAndCreateAuthTestSetup
()
clearAndCreateAuthTestSetup
()
type
args
struct
{
type
args
struct
{
ctx
context
.
Context
ctx
context
.
Context
request
*
apb
.
DeletePermissionsForRoleRequest
request
*
apb
.
DeletePermissionsForRoleRequest
...
@@ -299,9 +303,7 @@ func TestRole_DeletePermissionsForRole(t *testing.T) {
...
@@ -299,9 +303,7 @@ func TestRole_DeletePermissionsForRole(t *testing.T) {
},
},
},
},
},
},
want
:
&
apb
.
DeletePermissionsForRoleResponse
{
want
:
nil
,
Status
:
apb
.
Status_STATUS_OK
,
},
wantErr
:
true
,
wantErr
:
true
,
},
},
}
}
...
@@ -313,6 +315,7 @@ func TestRole_DeletePermissionsForRole(t *testing.T) {
...
@@ -313,6 +315,7 @@ func TestRole_DeletePermissionsForRole(t *testing.T) {
t
.
Errorf
(
"Role.DeletePermissionsForRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
t
.
Errorf
(
"Role.DeletePermissionsForRole() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
return
}
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.DeletePermissionsForRole() = %v, want %v"
,
got
,
tt
.
want
)
t
.
Errorf
(
"Role.DeletePermissionsForRole() = %v, want %v"
,
got
,
tt
.
want
)
}
}
...
@@ -338,6 +341,7 @@ func TestRole_DeleteRoles(t *testing.T) {
...
@@ -338,6 +341,7 @@ func TestRole_DeleteRoles(t *testing.T) {
request
:
&
apb
.
DeleteRolesRequest
{
request
:
&
apb
.
DeleteRolesRequest
{
RoleName
:
[]
string
{
RoleName
:
[]
string
{
"userTestRole"
,
"userTestRole"
,
"adminTestRole"
,
},
},
},
},
},
},
...
@@ -365,11 +369,14 @@ func TestRole_DeleteRoles(t *testing.T) {
...
@@ -365,11 +369,14 @@ func TestRole_DeleteRoles(t *testing.T) {
for
_
,
tt
:=
range
tests
{
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
s
:=
Role
{}
s
:=
Role
{}
clearAndCreateAuthTestSetup
()
got
,
err
:=
s
.
DeleteRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
request
)
got
,
err
:=
s
.
DeleteRoles
(
tt
.
args
.
ctx
,
tt
.
args
.
request
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"Role.DeleteRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
t
.
Errorf
(
"Role.DeleteRoles() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
return
}
}
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
if
got
!=
nil
&&
got
.
Status
!=
tt
.
want
.
Status
{
t
.
Errorf
(
"Role.DeleteRoles() = %v, want %v"
,
got
,
tt
.
want
)
t
.
Errorf
(
"Role.DeleteRoles() = %v, want %v"
,
got
,
tt
.
want
)
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment