Reviewer 역할 검증 보고서 smoke (runtime-role-matrix-live-20260714101723-v7-reviewer-001)

This commit is contained in:
forge-bot 2026-07-14 10:27:31 +00:00
parent 9a2c8523c8
commit c299563670

View file

@ -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(), "컨텍스트가 정리되어야 함");
}
}
}