Reviewer 역할 검증 보고서 smoke #8
1 changed files with 123 additions and 0 deletions
|
|
@ -0,0 +1,123 @@
|
||||||
|
package com.klaroworks.runtime.role;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.Nested;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
@DisplayName("RoleMatrixRuntime 테스트")
|
||||||
|
class RoleMatrixRuntimeTest {
|
||||||
|
|
||||||
|
private RoleMatrixRuntime runtime;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
runtime = new RoleMatrixRuntime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@DisplayName("evaluateRole 메서드 테스트")
|
||||||
|
class EvaluateRoleTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("유효한 역할 평가")
|
||||||
|
void testEvaluateValidRole() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
context.setRoles(new String[]{"admin", "user"});
|
||||||
|
|
||||||
|
boolean result = runtime.evaluateRole("admin", context);
|
||||||
|
assertTrue(result, "유효한 역할은 true를 반환해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("유효하지 않은 역할 평가")
|
||||||
|
void testEvaluateInvalidRole() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
context.setRoles(new String[]{"user"});
|
||||||
|
|
||||||
|
boolean result = runtime.evaluateRole("admin", context);
|
||||||
|
assertFalse(result, "유효하지 않은 역할은 false를 반환해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("null 역할 평가 시 false 반환")
|
||||||
|
void testEvaluateNullRole() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
|
||||||
|
boolean result = runtime.evaluateRole(null, context);
|
||||||
|
assertFalse(result, "null 역할은 false를 반환해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("빈 역할 평가 시 false 반환")
|
||||||
|
void testEvaluateEmptyRole() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
|
||||||
|
boolean result = runtime.evaluateRole("", context);
|
||||||
|
assertFalse(result, "빈 역할은 false를 반환해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("null 컨텍스트 평가 시 false 반환")
|
||||||
|
void testEvaluateNullContext() {
|
||||||
|
boolean result = runtime.evaluateRole("admin", null);
|
||||||
|
assertFalse(result, "null 컨텍스트는 false를 반환해야 함");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@DisplayName("hasPermission 메서드 테스트")
|
||||||
|
class HasPermissionTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("권한 있음")
|
||||||
|
void testHasPermission() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
context.setRoles(new String[]{"admin"});
|
||||||
|
|
||||||
|
boolean result = runtime.hasPermission(context, "read", "resource-001");
|
||||||
|
assertTrue(result, "권한이 있으면 true를 반환해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("권한 없음")
|
||||||
|
void testNoPermission() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
context.setRoles(new String[]{"user"});
|
||||||
|
|
||||||
|
boolean result = runtime.hasPermission(context, "delete", "resource-001");
|
||||||
|
assertFalse(result, "권한이 없으면 false를 반환해야 함");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@DisplayName("컨텍스트 관리 테스트")
|
||||||
|
class ContextManagementTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("컨텍스트 생성")
|
||||||
|
void testCreateContext() {
|
||||||
|
RoleContext context = runtime.createContext("user-001", new String[]{"admin"});
|
||||||
|
assertNotNull(context, "컨텍스트가 생성되어야 함");
|
||||||
|
assertEquals("user-001", context.getUserId(), "사용자 ID가 일치해야 함");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("컨텍스트 정리")
|
||||||
|
void testClearContext() {
|
||||||
|
RoleContext context = new RoleContext();
|
||||||
|
context.setUserId("user-001");
|
||||||
|
|
||||||
|
runtime.clearContext(context);
|
||||||
|
assertNull(context.getUserId(), "컨텍스트가 정리되어야 함");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue