test(project): remove brittle Lombok source audit

This commit is contained in:
sechmachine
2026-08-15 11:46:01 +07:00
parent 4b1e5721e4
commit 587127100d
2 changed files with 16 additions and 91 deletions
@@ -1,77 +0,0 @@
package com.lab.labtimesheet.feature.project.repository;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import org.junit.jupiter.api.Test;
class ProjectLombokBoilerplateTest {
private static final Path PROJECT_SOURCE =
Path.of("src/main/java/com/lab/labtimesheet/feature/project");
@Test
void eligibleConstructorsUseTargetedLombokWithoutChangingDomainApis() throws IOException {
assertRequiredArgsConstructor("controller/ProjectController.java", "ProjectController");
assertRequiredArgsConstructor("service/ProjectService.java", "ProjectService");
assertRequiredArgsConstructor("service/ProjectQueryService.java", "ProjectQueryService");
String advice = source("exception/ProjectControllerAdvice.java");
assertThat(advice).doesNotContain("public ProjectControllerAdvice()");
assertProtectedJpaConstructor("model/entity/ProjectEntity.java", "ProjectEntity");
assertProtectedJpaConstructor(
"model/entity/ProjectLeadershipTermEntity.java", "ProjectLeadershipTermEntity");
assertProtectedJpaConstructor(
"model/entity/ProjectMembershipEntity.java", "ProjectMembershipEntity");
assertThat(source("model/entity/ProjectEntity.java"))
.contains("public static ProjectEntity plan(", "public ProjectMembershipEntity addMember(")
.doesNotContain("@Getter", "@Setter", "@Data", "@EqualsAndHashCode", "@ToString");
assertThat(source("model/entity/ProjectLeadershipTermEntity.java"))
.contains("public long internUserId()", "Instant end(Instant at, long mentorUserId)")
.doesNotContain("@Getter", "@Setter", "@Data", "@EqualsAndHashCode", "@ToString");
assertThat(source("model/entity/ProjectMembershipEntity.java"))
.contains("public long internUserId()", "public boolean isCurrent()")
.doesNotContain("@Getter", "@Setter", "@Data", "@EqualsAndHashCode", "@ToString");
for (String recordSource : List.of(
"model/ProjectInternEligibility.java",
"model/ProjectLeaderChange.java",
"model/dto/ProjectActorView.java",
"model/dto/ProjectCreateCommand.java",
"model/dto/ProjectCreateForm.java",
"model/dto/ProjectDashboardSummary.java",
"model/dto/ProjectDetail.java",
"model/dto/ProjectLeadershipTermView.java",
"model/dto/ProjectMemberForm.java",
"model/dto/ProjectMemberView.java",
"model/dto/ProjectSummary.java",
"model/dto/ProjectTaskContext.java",
"model/dto/ProjectTaskMemberView.java")) {
assertThat(source(recordSource)).contains(" record ");
}
}
private static void assertRequiredArgsConstructor(String relativePath, String typeName) throws IOException {
assertThat(source(relativePath))
.contains("import lombok.RequiredArgsConstructor;", "@RequiredArgsConstructor")
.doesNotContain("public " + typeName + "(");
}
private static void assertProtectedJpaConstructor(String relativePath, String typeName) throws IOException {
assertThat(source(relativePath))
.contains(
"import lombok.AccessLevel;",
"import lombok.NoArgsConstructor;",
"@NoArgsConstructor(access = AccessLevel.PROTECTED)")
.doesNotContain("protected " + typeName + "()");
}
private static String source(String relativePath) throws IOException {
return Files.readString(PROJECT_SOURCE.resolve(relativePath));
}
}