@@ -32,3 +32,38 @@ func TestApplyDefaultUserRepoPermission(t *testing.T) {
32
32
applyDefaultUserRepoPermission (& user_model.User {ID : 1 }, & perm )
33
33
assert .True (t , perm .CanRead (unit .TypeUncyclo ))
34
34
}
35
+
36
+ func TestUnitAccessMode (t * testing.T ) {
37
+ perm := Permission {
38
+ AccessMode : perm_model .AccessModeNone ,
39
+ }
40
+ assert .Equal (t , perm_model .AccessModeNone , perm .UnitAccessMode (unit .TypeUncyclo ), "no unit or map, use AccessMode" )
41
+
42
+ perm = Permission {
43
+ AccessMode : perm_model .AccessModeOwner ,
44
+ Units : []* repo_model.RepoUnit {
45
+ {Type : unit .TypeUncyclo , EveryoneAccessMode : perm_model .AccessModeRead },
46
+ },
47
+ UnitsMode : map [unit.Type ]perm_model.AccessMode {},
48
+ }
49
+ assert .Equal (t , perm_model .AccessModeOwner , perm .UnitAccessMode (unit .TypeUncyclo ), "only unit no map, use AccessMode" )
50
+
51
+ perm = Permission {
52
+ AccessMode : perm_model .AccessModeOwner ,
53
+ UnitsMode : map [unit.Type ]perm_model.AccessMode {
54
+ unit .TypeUncyclo : perm_model .AccessModeRead ,
55
+ },
56
+ }
57
+ assert .Equal (t , perm_model .AccessModeRead , perm .UnitAccessMode (unit .TypeUncyclo ), "no unit only map, use map" )
58
+
59
+ perm = Permission {
60
+ AccessMode : perm_model .AccessModeOwner ,
61
+ Units : []* repo_model.RepoUnit {
62
+ {Type : unit .TypeUncyclo , EveryoneAccessMode : perm_model .AccessModeWrite },
63
+ },
64
+ UnitsMode : map [unit.Type ]perm_model.AccessMode {
65
+ unit .TypeUncyclo : perm_model .AccessModeRead ,
66
+ },
67
+ }
68
+ assert .Equal (t , perm_model .AccessModeRead , perm .UnitAccessMode (unit .TypeUncyclo ), "has unit and map, use map" )
69
+ }
0 commit comments