This repository was archived by the owner on Sep 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathBuildRequestTestUtils.java
More file actions
80 lines (68 loc) · 3.32 KB
/
BuildRequestTestUtils.java
File metadata and controls
80 lines (68 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package org.appverse.builder.build;
import org.appverse.builder.notification.email.EmailNotificationSender;
import org.appverse.builder.service.BuildChainService;
import org.appverse.builder.service.BuildRequestService;
import org.appverse.builder.web.rest.dto.BuildChainDTO;
import org.appverse.builder.web.rest.dto.BuildRequestDTO;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import javax.inject.Inject;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import static org.appverse.builder.domain.enumeration.BuildStatus.QUEUED;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Created by panthro on 23/02/16.
*/
@Component
public class BuildRequestTestUtils {
@Inject
private BuildRequestService buildRequestService;
private Logger log = LoggerFactory.getLogger(this.getClass());
@Inject
private BuildChainService buildChainService;
public void waitFinish(BuildRequestDTO buildRequest) throws InterruptedException {
while (!buildRequestService.findOne(buildRequest.getId()).isFinished()) {
log.info("Waiting build request to finish");
Thread.sleep(500);
}
}
public void waitStart(BuildRequestDTO buildRequest) throws InterruptedException {
while (QUEUED.equals(buildRequestService.findOne(buildRequest.getId()).getStatus())) {
log.info("Waiting for request to start, currently queued");
Thread.sleep(200);
}
}
public BuildChainDTO createBuildChainFromPayload(File nativeDemoDir) throws IOException, ZipException {
File tempFile = Files.createTempFile("payload-test", ".zip").toFile();
tempFile.delete();
ZipFile zipFile = new ZipFile(tempFile);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_FAST);
parameters.setIncludeRootFolder(false);
zipFile.createZipFileFromFolder(nativeDemoDir, parameters, false, 0L);
MockMultipartFile file = new MockMultipartFile("payload", new FileInputStream(zipFile.getFile()));
BuildChainDTO buildChain = buildChainService.createFromPayload(file);
tempFile.delete();
return buildChain;
}
public BuildRequestDTO createAndSchedule(String path) throws IOException, ZipException {
final BuildChainDTO buildChainDTO = createBuildChainFromPayload(new ClassPathResource(path).getFile());
assertThat(buildChainDTO.getRequests()).isNotEmpty();
assertThat(buildChainDTO.getRequests().stream().map(BuildRequestDTO::getStatus).distinct().findAny().get()).isEqualTo(QUEUED);
final BuildRequestDTO buildRequestDTO = buildChainDTO.getRequests().stream().findAny().get();
buildRequestDTO.getVariables().put(EmailNotificationSender.EMAIL_MODEL_KEY, "user@user.com");
buildRequestService.schedule(buildRequestDTO);
return buildRequestDTO;
}
}