package com.cloudhandson.vpdbackoffice.service; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.jupiter.api.Test; class SecuritySqlScriptServiceTest { private final SecuritySqlScriptService service = new SecuritySqlScriptService(); @Test void exposesOnlyTheCuratedGitTrackedSecurityScripts() { assertThat(service.list()) .extracting(item -> item.fileName()) .containsExactly( "70_sg_tool_user.sql", "71_sg_identity_administration.sql" ); assertThat(service.find("smilegate-identity-administration").source()) .contains("create table sg_app_user") .contains("DATA_AI_TF"); } @Test void rejectsUnknownScriptIdsInsteadOfResolvingAPathFromRequestInput() { assertThatThrownBy(() -> service.find("../../etc/passwd")) .isInstanceOf(AppException.class) .hasMessageContaining("조회할 수 없는"); } }