Skip to content

Commit 4a60734

Browse files
committed
test: Refactor add dependency test
1 parent 9a0f693 commit 4a60734

File tree

1 file changed

+33
-31
lines changed

1 file changed

+33
-31
lines changed

components/sbm-core/src/test/java/org/springframework/sbm/project/buildfile/OpenRewriteMavenBuildFileTest.java

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import org.springframework.sbm.engine.context.ProjectContextHolder;
3535
import org.springframework.sbm.java.api.Member;
3636
import org.springframework.sbm.java.impl.DependenciesChangedEventHandler;
37+
import org.springframework.sbm.java.impl.RewriteJavaParser;
38+
import org.springframework.sbm.project.resource.SbmApplicationProperties;
3739
import org.springframework.sbm.project.resource.TestProjectContext;
3840

3941
import java.nio.file.Path;
@@ -506,62 +508,62 @@ void testResolvedDependenciesWithPomTypeDependency() {
506508
}
507509

508510
@Test
509-
void addDependencyWithNoTransitiveDependencies() {
510-
String pomXml =
511-
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
512-
"<project xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\n" +
513-
" xmlns=\"http://maven.apache.org/POM/4.0.0\"\n" +
514-
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
515-
" <modelVersion>4.0.0</modelVersion>\n" +
516-
" <groupId>org.springframework.sbm</groupId>\n" +
517-
" <artifactId>dummy-test-artifact</artifactId>\n" +
518-
" <version>1.0.0</version>\n" +
519-
"</project>\n";
520-
521-
String javaSource = "import javax.validation.constraints.Email;\n" +
522-
"public class Cat {\n" +
523-
" @Email\n" +
524-
" private String email;\n" +
525-
"}";
526-
527-
// precondition: jar does not exist
528-
// precondition: types from jar not resolvable
529-
530-
// verify jar was downloaded
531-
// verify types from jar can be resolved
532-
511+
void addDependencyShouldPublishEvent() {
533512
ApplicationEventPublisher eventPublisher = mock(ApplicationEventPublisher.class);
513+
534514
ProjectContext context = TestProjectContext.buildProjectContext(eventPublisher)
535-
.withMavenRootBuildFileSource(pomXml)
536-
.addJavaSource("src/main/java", javaSource)
515+
.withMavenRootBuildFileSource(
516+
"""
517+
<?xml version="1.0" encoding="UTF-8"?>
518+
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
519+
xmlns="http://maven.apache.org/POM/4.0.0"
520+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
521+
<modelVersion>4.0.0</modelVersion>
522+
<groupId>org.springframework.sbm</groupId>
523+
<artifactId>dummy-test-artifact</artifactId>
524+
<version>1.0.0</version>
525+
</project>
526+
"""
527+
)
528+
.addJavaSource("src/main/java",
529+
"""
530+
import javax.validation.constraints.Email;
531+
public class Cat {
532+
@Email
533+
private String email;
534+
}
535+
"""
536+
)
537537
.build();
538538

539539
BuildFile buildFile = context.getBuildFile();
540540

541541
Member member = context.getProjectJavaSources().list().get(0).getTypes().get(0).getMembers().get(0);
542542

543+
// The Email annotation cannot be resolved
543544
boolean b = member.hasAnnotation("javax.validation.constraints.Email");
544545
assertThat(b).isFalse();
545546

547+
// adding the validation-api brings the Email annotation
546548
buildFile.addDependency(Dependency.builder()
547549
.groupId("javax.validation")
548550
.artifactId("validation-api")
549551
.version("2.0.1.Final")
550552
.build());
551553

552554

553-
554555
Class<DependenciesChangedEvent> event = DependenciesChangedEvent.class;
555556
ArgumentCaptor<DependenciesChangedEvent> argumentCaptor = ArgumentCaptor.forClass(event);
556557
assertEventPublished(eventPublisher, argumentCaptor, event, 1);
557558

558-
// verify(eventPublisher).publishEvent(argumentCaptor);
559-
assertThat(argumentCaptor.getValue().getResolvedDependencies().get(0).toString()).endsWith("javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar");
560-
561559
DependenciesChangedEvent fireEvent = argumentCaptor.getValue();
560+
assertThat(fireEvent.getResolvedDependencies().get(0).toString()).endsWith("javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar");
561+
562+
// call DependenciesChangedEventHandler to trigger recompile
563+
RewriteJavaParser rewriteJavaParser = new RewriteJavaParser(new SbmApplicationProperties());
562564
ProjectContextHolder projectContextHolder = new ProjectContextHolder();
563565
projectContextHolder.setProjectContext(context);
564-
DependenciesChangedEventHandler handler = new DependenciesChangedEventHandler(projectContextHolder, eventPublisher);
566+
DependenciesChangedEventHandler handler = new DependenciesChangedEventHandler(projectContextHolder, eventPublisher, rewriteJavaParser);
565567
handler.onDependenciesChanged(fireEvent);
566568

567569
Member member2 = context.getProjectJavaSources().list().get(0).getTypes().get(0).getMembers().get(0);

0 commit comments

Comments
 (0)