Files
token-go/enforcer_auth_api_test.go
2023-10-12 17:56:29 +08:00

76 lines
1.5 KiB
Go

package token_go
import (
"github.com/weloe/token-go/model"
"testing"
)
type MockRbacAuth struct {
}
func (m *MockRbacAuth) GetRole(id string) []string {
var arr = make([]string, 2)
arr[1] = "user"
return arr
}
type MockAclAuth struct {
}
func (m *MockAclAuth) GetPermission(id string) []string {
var arr = make([]string, 2)
arr[1] = "user::get"
return arr
}
func TestEnforcer_GetRole(t *testing.T) {
enforcer, ctx := NewTestEnforcer(t)
var err error
m := &MockRbacAuth{}
enforcer.SetAuth(m)
loginModel := model.DefaultLoginModel()
loginModel.Token = "233"
_, err = enforcer.LoginByModel("id", loginModel, ctx)
if err != nil {
t.Errorf("Login() failed: %v", err)
}
err = enforcer.CheckRole(ctx, "user")
if err != nil {
t.Errorf("CheckRole() failed: %v", err)
}
err = enforcer.CheckPermission(ctx, "user::get")
if err == nil {
t.Errorf("CheckRole() failed")
}
t.Logf("CheckPermission() return %v", err)
}
func TestEnforcer_CheckPermission(t *testing.T) {
enforcer, ctx := NewTestEnforcer(t)
var err error
if err != nil {
t.Errorf("NewTestEnforcer() failed: %v", err)
}
m := &MockAclAuth{}
enforcer.SetAuth(m)
loginModel := model.DefaultLoginModel()
loginModel.Token = "233"
_, err = enforcer.LoginByModel("id", loginModel, ctx)
if err != nil {
t.Errorf("Login() failed: %v", err)
}
err = enforcer.CheckRole(ctx, "user")
if err == nil {
t.Errorf("CheckRole() failed")
}
t.Logf("CheckRole() return %v", err)
err = enforcer.CheckPermission(ctx, "user::get")
if err != nil {
t.Errorf("CheckRole() failed: %v", err)
}
}