Add permissions test
This commit is contained in:
parent
86748fa32b
commit
04fa8f53e1
89
main_test.go
Normal file
89
main_test.go
Normal file
|
@ -0,0 +1,89 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"testing"
|
||||
|
||||
"github.com/ectrc/snow/aid"
|
||||
"github.com/ectrc/snow/fortnite"
|
||||
p "github.com/ectrc/snow/person"
|
||||
)
|
||||
|
||||
func TestPersonPermissions(t *testing.T) {
|
||||
person := fortnite.NewFortnitePerson("helloWorld", false)
|
||||
if person.DisplayName != "helloWorld" {
|
||||
t.Errorf("Expected 'helloWorld', got %s", person.DisplayName)
|
||||
}
|
||||
|
||||
aid.Print("intial permissions", person.Permissions)
|
||||
if person.Permissions != 0 {
|
||||
t.Errorf("Expected 0, got %d", person.Permissions)
|
||||
}
|
||||
|
||||
person.AddPermission(p.PermissionAll)
|
||||
aid.Print("permissions after adding all", person.Permissions)
|
||||
|
||||
if !person.HasPermission(p.PermissionAll) {
|
||||
t.Errorf("Expected to have all permissions, got false")
|
||||
}
|
||||
aid.Print("has all", person.HasPermission(p.PermissionAll))
|
||||
|
||||
if !person.HasPermission(p.PermissionDonator) {
|
||||
t.Errorf("Expected donator permission as a result of all permissions, got false")
|
||||
}
|
||||
aid.Print("has donator", person.HasPermission(p.PermissionDonator))
|
||||
|
||||
person.RemovePermission(p.PermissionAll)
|
||||
aid.Print("permissions after removing all", person.Permissions)
|
||||
|
||||
if person.HasPermission(p.PermissionAll) {
|
||||
t.Errorf("Expected no permissions, got true")
|
||||
}
|
||||
aid.Print("does not have all", !person.HasPermission(p.PermissionAll))
|
||||
|
||||
person.AddPermission(p.PermissionDonator)
|
||||
aid.Print("permissions after adding donator", person.Permissions)
|
||||
|
||||
if !person.HasPermission(p.PermissionDonator) {
|
||||
t.Errorf("Expected to have donator permission, got false")
|
||||
}
|
||||
aid.Print("has donator", person.HasPermission(p.PermissionDonator))
|
||||
|
||||
if person.HasPermission(p.PermissionAll) {
|
||||
t.Errorf("Expected not to have all permission, got true")
|
||||
}
|
||||
aid.Print("does not have all", !person.HasPermission(p.PermissionAll))
|
||||
|
||||
if person.HasPermission(p.PermissionItemControl) {
|
||||
t.Errorf("Expected not to have give permission, got true")
|
||||
}
|
||||
|
||||
person.RemovePermission(p.PermissionAll)
|
||||
aid.Print("permissions after removing all", person.Permissions)
|
||||
|
||||
if person.HasPermission(p.PermissionAll) {
|
||||
t.Errorf("Expected not to have all permission, got true")
|
||||
}
|
||||
aid.Print("does not have all", !person.HasPermission(p.PermissionAll))
|
||||
|
||||
if person.HasPermission(p.PermissionDonator) {
|
||||
t.Errorf("Expected not to have donator permission, got true")
|
||||
}
|
||||
aid.Print("does not have donator", !person.HasPermission(p.PermissionDonator))
|
||||
|
||||
person.AddPermission(p.PermissionDonator | p.PermissionItemControl)
|
||||
aid.Print("permissions after adding donator and item control", person.Permissions)
|
||||
|
||||
if !person.HasPermission(p.PermissionDonator) {
|
||||
t.Errorf("Expected to have donator permission, got false")
|
||||
}
|
||||
aid.Print("has donator", person.HasPermission(p.PermissionDonator))
|
||||
|
||||
if !person.HasPermission(p.PermissionItemControl) {
|
||||
t.Errorf("Expected to have item control permission, got false")
|
||||
}
|
||||
aid.Print("has item control", person.HasPermission(p.PermissionItemControl))
|
||||
|
||||
|
||||
person.Delete()
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package person
|
||||
|
||||
import "github.com/ectrc/snow/aid"
|
||||
|
||||
type Permission int64
|
||||
|
||||
// DO NOT MOVE THE ORDER OF THESE PERMISSIONS AS THEY ARE USED IN THE DATABASE
|
||||
|
@ -14,5 +16,33 @@ const (
|
|||
PermissionOwner
|
||||
PermissionDonator
|
||||
|
||||
PermissionAll Permission = 1<<iota - 1
|
||||
permissionRealAll = 1<<iota - 1
|
||||
// every permission except owner
|
||||
PermissionAll Permission = permissionRealAll ^ PermissionOwner
|
||||
)
|
||||
|
||||
func (p Permission) StringifyMe() string {
|
||||
aid.Print(p)
|
||||
switch p {
|
||||
case PermissionLookup:
|
||||
return "Lookup"
|
||||
case PermissionBan:
|
||||
return "Ban"
|
||||
case PermissionInformation:
|
||||
return "Information"
|
||||
case PermissionItemControl:
|
||||
return "ItemControl"
|
||||
case PermissionLockerControl:
|
||||
return "LockerControl"
|
||||
case PermissionPermissionControl:
|
||||
return "PermissionControl"
|
||||
case PermissionOwner:
|
||||
return "Owner"
|
||||
case PermissionDonator:
|
||||
return "Donator"
|
||||
case PermissionAll:
|
||||
return "All"
|
||||
default:
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user