(t *testing.T)
| 28 | } |
| 29 | |
| 30 | func TestLBACModel(t *testing.T) { |
| 31 | e, _ := NewEnforcer("examples/lbac_model.conf") |
| 32 | |
| 33 | t.Log("Testing normal read operation scenarios") |
| 34 | testEnforceLBAC(t, e, "admin", 5, 5, "file_topsecret", 3, 3, "read", true) // both high |
| 35 | testEnforceLBAC(t, e, "manager", 4, 4, "file_secret", 4, 2, "read", true) // confidentiality equal, integrity higher |
| 36 | testEnforceLBAC(t, e, "staff", 3, 3, "file_internal", 2, 3, "read", true) // confidentiality higher, integrity equal |
| 37 | testEnforceLBAC(t, e, "guest", 2, 2, "file_public", 2, 2, "read", true) // both dimensions equal |
| 38 | |
| 39 | t.Log("Testing read operation violation scenarios") |
| 40 | testEnforceLBAC(t, e, "staff", 3, 3, "file_secret", 4, 2, "read", false) // insufficient confidentiality level |
| 41 | testEnforceLBAC(t, e, "manager", 4, 4, "file_sensitive", 3, 5, "read", false) // insufficient integrity level |
| 42 | testEnforceLBAC(t, e, "guest", 2, 2, "file_internal", 3, 1, "read", false) // insufficient confidentiality level |
| 43 | testEnforceLBAC(t, e, "staff", 3, 3, "file_protected", 1, 4, "read", false) // insufficient integrity level |
| 44 | |
| 45 | t.Log("Testing normal write operation scenarios") |
| 46 | testEnforceLBAC(t, e, "guest", 2, 2, "file_public", 2, 2, "write", true) // both dimensions equal |
| 47 | testEnforceLBAC(t, e, "staff", 3, 3, "file_internal", 5, 4, "write", true) // both low |
| 48 | testEnforceLBAC(t, e, "manager", 4, 4, "file_secret", 4, 5, "write", true) // confidentiality equal, integrity low |
| 49 | testEnforceLBAC(t, e, "admin", 5, 5, "file_archive", 5, 5, "write", true) // both dimensions equal |
| 50 | |
| 51 | t.Log("Testing write operation violation scenarios") |
| 52 | testEnforceLBAC(t, e, "manager", 4, 4, "file_internal", 3, 5, "write", false) // confidentiality level too high |
| 53 | testEnforceLBAC(t, e, "staff", 3, 3, "file_public", 2, 2, "write", false) // both dimensions too high |
| 54 | testEnforceLBAC(t, e, "admin", 5, 5, "file_secret", 5, 4, "write", false) // integrity level too high |
| 55 | testEnforceLBAC(t, e, "guest", 2, 2, "file_private", 1, 3, "write", false) // confidentiality level too high |
| 56 | } |
nothing calls this directly
no test coverage detected