From e563e57c84460d8ecb465cdf5febbb4dafbe14bb Mon Sep 17 00:00:00 2001 From: forge-bot Date: Tue, 14 Jul 2026 08:30:01 +0000 Subject: [PATCH] =?UTF-8?q?Developer=20=EC=97=AD=ED=95=A0=20Spring=20?= =?UTF-8?q?=EA=B3=A8=EA=B2=A9=20smoke=20(role-developer-live-v3-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/service/DeveloperServiceTest.java | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/test/java/com/example/demo/service/DeveloperServiceTest.java diff --git a/src/test/java/com/example/demo/service/DeveloperServiceTest.java b/src/test/java/com/example/demo/service/DeveloperServiceTest.java new file mode 100644 index 0000000..59a4637 --- /dev/null +++ b/src/test/java/com/example/demo/service/DeveloperServiceTest.java @@ -0,0 +1,88 @@ +package com.example.demo.service; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.DisplayName; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class DeveloperServiceTest { + + private DeveloperService developerService; + + @BeforeEach + void setUp() { + developerService = new DeveloperService(); + } + + @Test + @DisplayName("Developer role should have read-write permission") + void getRolePermission_developer_returnsReadWrite() { + String permission = developerService.getRolePermission("developer"); + assertEquals("read-write", permission); + } + + @Test + @DisplayName("Viewer role should have read-only permission") + void getRolePermission_viewer_returnsReadOnly() { + String permission = developerService.getRolePermission("viewer"); + assertEquals("read-only", permission); + } + + @Test + @DisplayName("Admin role should have full-access permission") + void getRolePermission_admin_returnsFullAccess() { + String permission = developerService.getRolePermission("admin"); + assertEquals("full-access", permission); + } + + @Test + @DisplayName("Unknown role should return no-access") + void getRolePermission_unknown_returnsNoAccess() { + String permission = developerService.getRolePermission("unknown"); + assertEquals("no-access", permission); + } + + @Test + @DisplayName("Role lookup should be case-insensitive") + void getRolePermission_caseInsensitive() { + assertEquals("read-write", developerService.getRolePermission("DEVELOPER")); + assertEquals("read-write", developerService.getRolePermission("Developer")); + } + + @Test + @DisplayName("getAllRoles should return all defined roles") + void getAllRoles_returnsAllRoles() { + List roles = developerService.getAllRoles(); + assertEquals(3, roles.size()); + assertTrue(roles.contains("developer")); + assertTrue(roles.contains("viewer")); + assertTrue(roles.contains("admin")); + } + + @Test + @DisplayName("Admin should have all permissions") + void hasPermission_admin_hasAllPermissions() { + assertTrue(developerService.hasPermission("admin", "read")); + assertTrue(developerService.hasPermission("admin", "write")); + assertTrue(developerService.hasPermission("admin", "delete")); + } + + @Test + @DisplayName("Developer should have read and write but not delete") + void hasPermission_developer_readWriteNotDelete() { + assertTrue(developerService.hasPermission("developer", "read")); + assertTrue(developerService.hasPermission("developer", "write")); + assertFalse(developerService.hasPermission("developer", "delete")); + } + + @Test + @DisplayName("Viewer should only have read permission") + void hasPermission_viewer_onlyRead() { + assertTrue(developerService.hasPermission("viewer", "read")); + assertFalse(developerService.hasPermission("viewer", "write")); + assertFalse(developerService.hasPermission("viewer", "delete")); + } +}