1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.internal;
20
21 import java.lang.reflect.Field;
22
23 import org.eclipse.aether.RepositoryEvent;
24 import org.eclipse.aether.RepositoryEvent.EventType;
25 import org.eclipse.aether.artifact.DefaultArtifact;
26 import org.eclipse.aether.impl.ArtifactDescriptorReader;
27 import org.eclipse.aether.impl.RepositoryEventDispatcher;
28 import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
29 import org.junit.jupiter.api.Test;
30 import org.mockito.ArgumentCaptor;
31
32 import static org.junit.jupiter.api.Assertions.assertEquals;
33 import static org.junit.jupiter.api.Assertions.assertTrue;
34 import static org.mockito.Mockito.mock;
35 import static org.mockito.Mockito.verify;
36
37 class DefaultArtifactDescriptorReaderTest extends AbstractRepositoryTestCase {
38
39 @Test
40 void testMng5459() throws Exception {
41
42 DefaultArtifactDescriptorReader reader =
43 (DefaultArtifactDescriptorReader) getContainer().lookup(ArtifactDescriptorReader.class);
44
45 RepositoryEventDispatcher eventDispatcher = mock(RepositoryEventDispatcher.class);
46
47 ArgumentCaptor<RepositoryEvent> event = ArgumentCaptor.forClass(RepositoryEvent.class);
48
49 Field field = DefaultArtifactDescriptorReader.class.getDeclaredField("repositoryEventDispatcher");
50 field.setAccessible(true);
51 field.set(reader, eventDispatcher);
52
53 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
54
55 request.addRepository(newTestRepository());
56
57 request.setArtifact(new DefaultArtifact("org.apache.maven.its", "dep-mng5459", "jar", "0.4.0-SNAPSHOT"));
58
59
60 reader.readArtifactDescriptor(session, request);
61
62
63 verify(eventDispatcher).dispatch(event.capture());
64
65 boolean missingArtifactDescriptor = false;
66
67 for (RepositoryEvent evt : event.getAllValues()) {
68 if (EventType.ARTIFACT_DESCRIPTOR_MISSING.equals(evt.getType())) {
69 assertEquals(
70 "Could not find artifact org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2 in repo ("
71 + newTestRepository().getUrl() + ")",
72 evt.getException().getMessage());
73 missingArtifactDescriptor = true;
74 }
75 }
76
77 assertTrue(
78 missingArtifactDescriptor,
79 "Expected missing artifact descriptor for org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2");
80 }
81 }