1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.internal.impl;
20
21 import java.io.File;
22 import java.io.IOException;
23
24 import org.eclipse.aether.RepositorySystemSession;
25 import org.eclipse.aether.artifact.Artifact;
26 import org.eclipse.aether.artifact.DefaultArtifact;
27 import org.eclipse.aether.internal.test.util.TestFileUtils;
28 import org.eclipse.aether.internal.test.util.TestUtils;
29 import org.eclipse.aether.repository.LocalArtifactRequest;
30 import org.eclipse.aether.repository.LocalArtifactResult;
31 import org.eclipse.aether.repository.RemoteRepository;
32 import org.junit.jupiter.api.AfterEach;
33 import org.junit.jupiter.api.BeforeEach;
34 import org.junit.jupiter.api.Test;
35
36 import static org.junit.jupiter.api.Assertions.*;
37
38
39
40 public class SimpleLocalRepositoryManagerTest {
41
42 private File basedir;
43
44 private SimpleLocalRepositoryManager manager;
45
46 private RepositorySystemSession session;
47
48 @BeforeEach
49 void setup() throws IOException {
50 basedir = TestFileUtils.createTempDir("simple-repo");
51 manager = new SimpleLocalRepositoryManager(basedir, "simple", new DefaultLocalPathComposer());
52 session = TestUtils.newSession();
53 }
54
55 @AfterEach
56 void tearDown() throws Exception {
57 TestFileUtils.deleteFile(basedir);
58 manager = null;
59 session = null;
60 }
61
62 @Test
63 void testGetPathForLocalArtifact() {
64 Artifact artifact = new DefaultArtifact("g.i.d:a.i.d:1.0-SNAPSHOT");
65 assertEquals("1.0-SNAPSHOT", artifact.getBaseVersion());
66 assertEquals("g/i/d/a.i.d/1.0-SNAPSHOT/a.i.d-1.0-SNAPSHOT.jar", manager.getPathForLocalArtifact(artifact));
67
68 artifact = new DefaultArtifact("g.i.d:a.i.d:1.0-20110329.221805-4");
69 assertEquals("1.0-SNAPSHOT", artifact.getBaseVersion());
70 assertEquals("g/i/d/a.i.d/1.0-SNAPSHOT/a.i.d-1.0-SNAPSHOT.jar", manager.getPathForLocalArtifact(artifact));
71
72 artifact = new DefaultArtifact("g.i.d", "a.i.d", "", "", "1.0-SNAPSHOT");
73 assertEquals("g/i/d/a.i.d/1.0-SNAPSHOT/a.i.d-1.0-SNAPSHOT", manager.getPathForLocalArtifact(artifact));
74 }
75
76 @Test
77 void testGetPathForRemoteArtifact() {
78 RemoteRepository remoteRepo = new RemoteRepository.Builder("repo", "default", "ram:/void").build();
79
80 Artifact artifact = new DefaultArtifact("g.i.d:a.i.d:1.0-SNAPSHOT");
81 assertEquals("1.0-SNAPSHOT", artifact.getBaseVersion());
82 assertEquals(
83 "g/i/d/a.i.d/1.0-SNAPSHOT/a.i.d-1.0-SNAPSHOT.jar",
84 manager.getPathForRemoteArtifact(artifact, remoteRepo, ""));
85
86 artifact = new DefaultArtifact("g.i.d:a.i.d:1.0-20110329.221805-4");
87 assertEquals("1.0-SNAPSHOT", artifact.getBaseVersion());
88 assertEquals(
89 "g/i/d/a.i.d/1.0-SNAPSHOT/a.i.d-1.0-20110329.221805-4.jar",
90 manager.getPathForRemoteArtifact(artifact, remoteRepo, ""));
91 }
92
93 @Test
94 void testFindArtifactUsesTimestampedVersion() throws Exception {
95 Artifact artifact = new DefaultArtifact("g.i.d:a.i.d:1.0-SNAPSHOT");
96 File file = new File(basedir, manager.getPathForLocalArtifact(artifact));
97 TestFileUtils.writeString(file, "test");
98
99 artifact = artifact.setVersion("1.0-20110329.221805-4");
100 LocalArtifactRequest request = new LocalArtifactRequest();
101 request.setArtifact(artifact);
102 LocalArtifactResult result = manager.find(session, request);
103 assertNull(result.getFile(), result.toString());
104 assertFalse(result.isAvailable(), result.toString());
105 }
106 }