Skip to content

Commit 1ca48b6

Browse files
committed
AGDIGGER-60 - Fetching artifacts (no upstream changes)
1 parent fcff748 commit 1ca48b6

File tree

4 files changed

+81
-3
lines changed

4 files changed

+81
-3
lines changed

pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
<version>1.0.0</version>
1010
<packaging>jar</packaging>
1111

12+
<properties>
13+
<junit.version>4.11</junit.version>
14+
<mockito-core.version>1.9.5</mockito-core.version>
15+
</properties>
16+
1217
<licenses>
1318
<license>
1419
<name>Apache License, Version 2.0</name>
@@ -38,6 +43,19 @@
3843
<artifactId>slf4j-log4j12</artifactId>
3944
<version>1.7.21</version>
4045
</dependency>
46+
<!-- Testing -->
47+
<dependency>
48+
<groupId>junit</groupId>
49+
<artifactId>junit</artifactId>
50+
<version>${junit.version}</version>
51+
<scope>test</scope>
52+
</dependency>
53+
<dependency>
54+
<groupId>org.mockito</groupId>
55+
<artifactId>mockito-core</artifactId>
56+
<version>${mockito-core.version}</version>
57+
<scope>test</scope>
58+
</dependency>
4159
</dependencies>
4260
<repositories>
4361
<repository>

src/main/java/com/redhat/digkins/DiggerClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public long build(String jobName) throws DiggerClientException {
118118
* @param artifactName - name of the artifact to fetch - can be regexp
119119
* @return InputStream with file contents
120120
*/
121-
public InputStream fetchArtifact(String jobName, long buildNumber, String artifactName) {
121+
public InputStream fetchArtifact(String jobName, int buildNumber, String artifactName) {
122122
ArtifactsService artifactsService = new ArtifactsService(jenkins);
123123
return artifactsService.fetchArtifact(jobName,buildNumber,artifactName);
124124
}

src/main/java/com/redhat/digkins/services/ArtifactsService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.offbytwo.jenkins.model.Artifact;
55
import com.offbytwo.jenkins.model.Build;
66
import com.offbytwo.jenkins.model.BuildWithDetails;
7+
import com.offbytwo.jenkins.model.JobWithDetails;
78
import org.jtwig.JtwigModel;
89
import org.jtwig.JtwigTemplate;
910
import org.slf4j.Logger;
@@ -39,9 +40,10 @@ public ArtifactsService(JenkinsServer jenkins) {
3940
* @param artifactName - name of the artifact to fetch - can be regexp
4041
* @return InputStream with file contents
4142
*/
42-
public InputStream fetchArtifact(String jobName, long buildNumber, String artifactName) {
43+
public InputStream fetchArtifact(String jobName, int buildNumber, String artifactName) {
4344
try {
44-
Build build = jenkins.getBuild(jobName, buildNumber);
45+
JobWithDetails job = jenkins.getJob(jobName);
46+
Build build = job.getBuildByNumber(buildNumber);
4547
if (build instanceof BuildWithDetails) {
4648
BuildWithDetails buildWithDetails = ((BuildWithDetails) build);
4749
List<Artifact> artifacts = buildWithDetails.getArtifacts();
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package digkins.services;
2+
3+
import com.offbytwo.jenkins.JenkinsServer;
4+
import com.offbytwo.jenkins.client.JenkinsHttpClient;
5+
import com.offbytwo.jenkins.model.*;
6+
import com.redhat.digkins.services.ArtifactsService;
7+
import org.junit.Test;
8+
9+
import java.io.FileInputStream;
10+
import java.io.InputStream;
11+
import java.util.Arrays;
12+
13+
import static org.junit.Assert.assertNotNull;
14+
import static org.junit.Assert.assertNull;
15+
import static org.mockito.BDDMockito.given;
16+
import static org.mockito.Matchers.*;
17+
import static org.mockito.Mockito.mock;
18+
import static org.mockito.Mockito.verify;
19+
20+
public class ArtifactsServiceTests {
21+
private String jobLocation = "http://localhost/job/artifact/";
22+
private JenkinsServer server = mock(JenkinsServer.class);
23+
24+
@Test
25+
public void testGetNoArtifacts() throws Exception {
26+
ArtifactsService artifactsService = new ArtifactsService(server);
27+
JobWithDetails job = mock(JobWithDetails.class);
28+
BuildWithDetails build = mock(BuildWithDetails.class);
29+
given(job.getBuildByNumber(anyInt())).willReturn(build);
30+
31+
InputStream artifact = artifactsService.fetchArtifact("artifact", 1,"test");
32+
assertNull(artifact);
33+
}
34+
35+
@Test
36+
public void testGetArtifacts() throws Exception {
37+
ArtifactsService artifactsService = new ArtifactsService(server);
38+
JobWithDetails job = mock(JobWithDetails.class);
39+
BuildWithDetails build = mock(BuildWithDetails.class);
40+
given(server.getJob(anyString())).willReturn(job);
41+
given(job.getBuildByNumber(anyInt())).willReturn(build);
42+
// given(client.get(eq(jobLocation), eq(Job.class))).willReturn(job);
43+
Artifact artifact = mock(Artifact.class);
44+
given(build.getArtifacts()).willReturn(Arrays.asList(artifact));
45+
FileInputStream fs = mock(FileInputStream.class);
46+
given(build.downloadArtifact(artifact)).willReturn(fs);
47+
String artifactName = "test";
48+
given(artifact.getFileName()).willReturn(artifactName);
49+
InputStream artifactStream = artifactsService.fetchArtifact("artifact", 1,artifactName);
50+
51+
// verify(client).get("/job/artifact", JobWithDetails.class);
52+
assertNotNull(artifactStream);
53+
}
54+
55+
56+
57+
58+
}

0 commit comments

Comments
 (0)