|
15 | 15 | */
|
16 | 16 | package com.gitblit.tests;
|
17 | 17 |
|
| 18 | +import com.gitblit.Constants; |
| 19 | +import com.gitblit.models.RegistrantAccessPermission; |
| 20 | +import com.gitblit.models.TeamModel; |
18 | 21 | import org.junit.Test;
|
19 | 22 |
|
20 | 23 | import com.gitblit.models.UserModel;
|
21 | 24 |
|
| 25 | +import java.util.List; |
| 26 | + |
22 | 27 | /**
|
23 | 28 | * @author Alfred Schmid
|
24 | 29 | *
|
@@ -49,4 +54,48 @@ public void whenDisplayNameIsNotEmptyDisplayNameIsUsed() {
|
49 | 54 | assertEquals("When displayName is not empty its value has to be returnd from getDisplayName().", displayName, userModel.getDisplayName());
|
50 | 55 | }
|
51 | 56 |
|
| 57 | + |
| 58 | + @Test |
| 59 | + public void getRepositoryPermissionsMultipleTeams() |
| 60 | + { |
| 61 | + |
| 62 | + TeamModel aTeam = new TeamModel("A team"); |
| 63 | + aTeam.addRepositoryPermission("RW+:acerepo.git"); |
| 64 | + aTeam.addRepositoryPermission("V:boobrepo.git"); |
| 65 | + |
| 66 | + TeamModel bTeam = new TeamModel("Team B"); |
| 67 | + bTeam.addRepositoryPermission("R:acerepo.git"); |
| 68 | + bTeam.addRepositoryPermission("RWC:boobrepo.git"); |
| 69 | + |
| 70 | + UserModel user = new UserModel("tessiur"); |
| 71 | + user.teams.add(aTeam); |
| 72 | + user.teams.add(bTeam); |
| 73 | + user.addRepositoryPermission("RW+:myrepo.git"); |
| 74 | + |
| 75 | + List<RegistrantAccessPermission> repoPerms = user.getRepositoryPermissions(); |
| 76 | + int found = 0; |
| 77 | + for (RegistrantAccessPermission p : repoPerms) { |
| 78 | + switch (p.registrant) { |
| 79 | + case "acerepo.git": |
| 80 | + assertEquals("Expected REWIND(RW+) permission for " + p.registrant, Constants.AccessPermission.REWIND, p.permission); |
| 81 | + found++; |
| 82 | + break; |
| 83 | + case "boobrepo.git": |
| 84 | + assertEquals("Expected CREATE(RWC) permission for " + p.registrant, Constants.AccessPermission.CREATE, p.permission); |
| 85 | + found++; |
| 86 | + break; |
| 87 | + case "myrepo.git": |
| 88 | + assertEquals("Expected REWIND(RW+) permission for " + p.registrant, Constants.AccessPermission.REWIND, p.permission); |
| 89 | + found++; |
| 90 | + break; |
| 91 | + default: |
| 92 | + fail("Unknown repository registrant " + p.registrant); |
| 93 | + break; |
| 94 | + } |
| 95 | + } |
| 96 | + |
| 97 | + assertEquals("Repostory permissions missing in list.", 3, found); |
| 98 | + |
| 99 | + } |
| 100 | + |
52 | 101 | }
|
0 commit comments