|
|
|
|
@@ -26,6 +26,9 @@ class SecurityServiceTest {
|
|
|
|
|
@Inject
|
|
|
|
|
SecurityService securityService;
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
|
RolePermissionConfig rolePermissionConfig;
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Tests des permissions par rôle
|
|
|
|
|
// =========================================================================
|
|
|
|
|
@@ -33,7 +36,7 @@ class SecurityServiceTest {
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Role USER devrait avoir les permissions de base")
|
|
|
|
|
void testUserRoleHasBasicPermissions() {
|
|
|
|
|
Set<Permission> userPermissions = RolePermissionConfig.getPermissions(Role.USER);
|
|
|
|
|
Set<Permission> userPermissions = rolePermissionConfig.getPermissions(Role.USER);
|
|
|
|
|
|
|
|
|
|
// Vérifier les permissions de profil
|
|
|
|
|
assertTrue(userPermissions.contains(Permission.PROFILE_READ), "USER devrait pouvoir lire son profil");
|
|
|
|
|
@@ -53,27 +56,27 @@ class SecurityServiceTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Role OWNER devrait avoir les permissions d'établissement")
|
|
|
|
|
@DisplayName("Role ESTABLISHMENT_OWNER devrait avoir les permissions d'établissement")
|
|
|
|
|
void testOwnerRoleHasEstablishmentPermissions() {
|
|
|
|
|
Set<Permission> ownerPermissions = RolePermissionConfig.getPermissions(Role.OWNER);
|
|
|
|
|
Set<Permission> ownerPermissions = rolePermissionConfig.getPermissions(Role.ESTABLISHMENT_OWNER);
|
|
|
|
|
|
|
|
|
|
// Permissions de gestion d'établissement
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_CREATE), "OWNER devrait pouvoir créer un établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_UPDATE_OWN), "OWNER devrait pouvoir modifier son établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_DELETE_OWN), "OWNER devrait pouvoir supprimer son établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_MANAGE_STAFF), "OWNER devrait pouvoir gérer le personnel");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_VIEW_ANALYTICS), "OWNER devrait voir les analytics");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_CREATE), "ESTABLISHMENT_OWNER devrait pouvoir créer un établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_UPDATE_OWN), "ESTABLISHMENT_OWNER devrait pouvoir modifier son établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_DELETE_OWN), "ESTABLISHMENT_OWNER devrait pouvoir supprimer son établissement");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_MANAGE_STAFF), "ESTABLISHMENT_OWNER devrait pouvoir gérer le personnel");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.ESTABLISHMENTS_VIEW_ANALYTICS), "ESTABLISHMENT_OWNER devrait voir les analytics");
|
|
|
|
|
|
|
|
|
|
// Permissions de promotions
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_CREATE), "OWNER devrait pouvoir créer des promotions");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_UPDATE_OWN), "OWNER devrait pouvoir modifier ses promotions");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_DELETE_OWN), "OWNER devrait pouvoir supprimer ses promotions");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_CREATE), "ESTABLISHMENT_OWNER devrait pouvoir créer des promotions");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_UPDATE_OWN), "ESTABLISHMENT_OWNER devrait pouvoir modifier ses promotions");
|
|
|
|
|
assertTrue(ownerPermissions.contains(Permission.PROMOTIONS_DELETE_OWN), "ESTABLISHMENT_OWNER devrait pouvoir supprimer ses promotions");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Role SUPER_ADMIN devrait avoir toutes les permissions")
|
|
|
|
|
void testSuperAdminHasAllPermissions() {
|
|
|
|
|
Set<Permission> superAdminPermissions = RolePermissionConfig.getPermissions(Role.SUPER_ADMIN);
|
|
|
|
|
Set<Permission> superAdminPermissions = rolePermissionConfig.getPermissions(Role.SUPER_ADMIN);
|
|
|
|
|
|
|
|
|
|
// SUPER_ADMIN devrait avoir accès à tout
|
|
|
|
|
assertTrue(superAdminPermissions.contains(Permission.SUPER_ADMIN_ACCESS), "SUPER_ADMIN devrait avoir accès super admin");
|
|
|
|
|
@@ -86,7 +89,7 @@ class SecurityServiceTest {
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Role MODERATOR devrait avoir les permissions de modération")
|
|
|
|
|
void testModeratorRoleHasModerationPermissions() {
|
|
|
|
|
Set<Permission> modPermissions = RolePermissionConfig.getPermissions(Role.MODERATOR);
|
|
|
|
|
Set<Permission> modPermissions = rolePermissionConfig.getPermissions(Role.MODERATOR);
|
|
|
|
|
|
|
|
|
|
assertTrue(modPermissions.contains(Permission.MODERATION_VIEW_REPORTS), "MODERATOR devrait voir les signalements");
|
|
|
|
|
assertTrue(modPermissions.contains(Permission.MODERATION_HANDLE_REPORTS), "MODERATOR devrait traiter les signalements");
|
|
|
|
|
@@ -128,23 +131,28 @@ class SecurityServiceTest {
|
|
|
|
|
// =========================================================================
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Test conversion String vers Role")
|
|
|
|
|
@DisplayName("Test conversion String vers Role avec fromString")
|
|
|
|
|
void testRoleFromString() {
|
|
|
|
|
assertEquals(Role.USER, Role.valueOf("USER"));
|
|
|
|
|
assertEquals(Role.OWNER, Role.valueOf("OWNER"));
|
|
|
|
|
assertEquals(Role.MANAGER, Role.valueOf("MANAGER"));
|
|
|
|
|
assertEquals(Role.ADMIN, Role.valueOf("ADMIN"));
|
|
|
|
|
assertEquals(Role.SUPER_ADMIN, Role.valueOf("SUPER_ADMIN"));
|
|
|
|
|
assertEquals(Role.MODERATOR, Role.valueOf("MODERATOR"));
|
|
|
|
|
assertEquals(Role.SUPPORT, Role.valueOf("SUPPORT"));
|
|
|
|
|
assertEquals(Role.FINANCE, Role.valueOf("FINANCE"));
|
|
|
|
|
// Nouveaux noms de rôles
|
|
|
|
|
assertEquals(Role.USER, Role.fromString("USER"));
|
|
|
|
|
assertEquals(Role.ESTABLISHMENT_OWNER, Role.fromString("ESTABLISHMENT_OWNER"));
|
|
|
|
|
assertEquals(Role.ESTABLISHMENT_MANAGER, Role.fromString("ESTABLISHMENT_MANAGER"));
|
|
|
|
|
assertEquals(Role.ADMIN, Role.fromString("ADMIN"));
|
|
|
|
|
assertEquals(Role.SUPER_ADMIN, Role.fromString("SUPER_ADMIN"));
|
|
|
|
|
assertEquals(Role.MODERATOR, Role.fromString("MODERATOR"));
|
|
|
|
|
assertEquals(Role.SUPPORT, Role.fromString("SUPPORT"));
|
|
|
|
|
assertEquals(Role.FINANCE_MANAGER, Role.fromString("FINANCE_MANAGER"));
|
|
|
|
|
|
|
|
|
|
// Rétrocompatibilité avec anciens noms
|
|
|
|
|
assertEquals(Role.ESTABLISHMENT_OWNER, Role.fromString("OWNER"));
|
|
|
|
|
assertEquals(Role.ESTABLISHMENT_MANAGER, Role.fromString("MANAGER"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Test que chaque rôle a au moins une permission")
|
|
|
|
|
void testAllRolesHavePermissions() {
|
|
|
|
|
for (Role role : Role.values()) {
|
|
|
|
|
Set<Permission> permissions = RolePermissionConfig.getPermissions(role);
|
|
|
|
|
Set<Permission> permissions = rolePermissionConfig.getPermissions(role);
|
|
|
|
|
assertFalse(permissions.isEmpty(), "Le rôle " + role + " devrait avoir au moins une permission");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -161,4 +169,12 @@ class SecurityServiceTest {
|
|
|
|
|
assertFalse(permission.getDescription().isBlank(), "La description de " + permission + " ne devrait pas être vide");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
@DisplayName("Role ESTABLISHMENT_MANAGER devrait pouvoir créer des établissements")
|
|
|
|
|
void testManagerCanCreateEstablishments() {
|
|
|
|
|
Set<Permission> managerPermissions = rolePermissionConfig.getPermissions(Role.ESTABLISHMENT_MANAGER);
|
|
|
|
|
assertTrue(managerPermissions.contains(Permission.ESTABLISHMENTS_CREATE),
|
|
|
|
|
"ESTABLISHMENT_MANAGER devrait pouvoir créer un établissement");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|