forked from jenkinsci/jfrog-plugin
-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathCliEnvConfiguratorTest.java
More file actions
98 lines (82 loc) · 3.8 KB
/
Copy pathCliEnvConfiguratorTest.java
File metadata and controls
98 lines (82 loc) · 3.8 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package io.jenkins.plugins.jfrog;
import hudson.EnvVars;
import hudson.FilePath;
import io.jenkins.plugins.jfrog.actions.JFrogCliConfigEncryption;
import io.jenkins.plugins.jfrog.configuration.JenkinsProxyConfiguration;
import jenkins.model.Jenkins;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import static io.jenkins.plugins.jfrog.CliEnvConfigurator.*;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author yahavi
**/
@WithJenkins
class CliEnvConfiguratorTest {
protected JenkinsRule jenkinsRule;
protected JenkinsProxyConfiguration proxyConfiguration;
protected EnvVars envVars;
@TempDir
protected Path tempFolder;
@BeforeEach
void beforeEach(JenkinsRule rule) {
jenkinsRule = rule;
envVars = new EnvVars();
envVars.put("JOB_NAME", "buildName");
envVars.put("BUILD_NUMBER", "1");
envVars.put("BUILD_URL", "https://acme.jenkins.io");
}
@Test
void configureCliEnvBasicTest() throws Exception {
File jfrogHomeDir = Files.createTempDirectory(tempFolder, "jfrog-home").toFile();
FilePath jfrogHomeTempDir = new FilePath(jfrogHomeDir);
invokeConfigureCliEnv(jfrogHomeTempDir, new JFrogCliConfigEncryption(envVars));
assertEnv(envVars, JFROG_CLI_BUILD_NAME, "buildName");
assertEnv(envVars, JFROG_CLI_BUILD_NUMBER, "1");
assertEnv(envVars, JFROG_CLI_BUILD_URL, "https://acme.jenkins.io");
assertEnv(envVars, JFROG_CLI_HOME_DIR, jfrogHomeDir.getAbsolutePath());
}
@Test
void configEncryptionTest() throws Exception {
JFrogCliConfigEncryption configEncryption = new JFrogCliConfigEncryption(envVars);
assertTrue(configEncryption.shouldEncrypt());
assertEquals(32, configEncryption.getKey().length());
invokeConfigureCliEnv(new FilePath(Files.createTempDirectory(tempFolder, "encryption-test").toFile()), configEncryption);
assertEnv(envVars, JFROG_CLI_ENCRYPTION_KEY, configEncryption.getKeyFilePath());
}
@Test
void configEncryptionWithHomeDirTest() throws Exception {
// Config JFROG_CLI_HOME_DIR to disable key encryption
envVars.put(JFROG_CLI_HOME_DIR, "/a/b/c");
JFrogCliConfigEncryption configEncryption = new JFrogCliConfigEncryption(envVars);
File emptyDir = Files.createTempDirectory(tempFolder, "empty").toFile();
invokeConfigureCliEnv(new FilePath(emptyDir), configEncryption);
assertFalse(configEncryption.shouldEncrypt());
assertFalse(envVars.containsKey(JFROG_CLI_ENCRYPTION_KEY));
}
static void assertEnv(EnvVars envVars, String key, String expectedValue) {
assertEquals(expectedValue, envVars.get(key));
}
void invokeConfigureCliEnv() throws Exception {
File emptyDir = Files.createTempDirectory(tempFolder, "default").toFile();
this.invokeConfigureCliEnv(new FilePath(emptyDir), new JFrogCliConfigEncryption(envVars));
}
void invokeConfigureCliEnv(FilePath jfrogHomeTempDir, JFrogCliConfigEncryption configEncryption) throws Exception {
setProxyConfiguration();
configureCliEnv(envVars, jfrogHomeTempDir, configEncryption);
}
private void setProxyConfiguration() {
hudson.ProxyConfiguration jenkinsProxyConfiguration = null;
if (proxyConfiguration != null) {
jenkinsProxyConfiguration = new hudson.ProxyConfiguration(proxyConfiguration.host, proxyConfiguration.port,
proxyConfiguration.username, proxyConfiguration.password, proxyConfiguration.noProxy);
}
Jenkins.get().setProxy(jenkinsProxyConfiguration);
}
}