Search in sources :

Example 21 with CNode

use of io.jenkins.plugins.casc.model.CNode in project configuration-as-code-plugin by jenkinsci.

the class DataBoundConfiguratorTest method exportWithSets.

@Test
@SuppressWarnings("unchecked")
public void exportWithSets() throws Exception {
    HashSet<String> set = new HashSet<>();
    set.add("foo");
    Bar bar = new Bar(set);
    ConfiguratorRegistry registry = ConfiguratorRegistry.get();
    final Configurator c = registry.lookupOrFail(Bar.class);
    final ConfigurationContext context = new ConfigurationContext(registry);
    CNode node = c.describe(bar, context);
    assertNotNull(node);
    assertTrue(node instanceof Mapping);
    Mapping map = (Mapping) node;
    assertEquals(map.get("strings").toString(), "[foo]");
    assertEquals(Util.toYamlString(map.get("strings")).trim(), "- \"foo\"");
    assertFalse(map.containsKey("other"));
    // now with two elements
    set.add("bar");
    node = c.describe(bar, context);
    assertNotNull(node);
    assertTrue(node instanceof Mapping);
    map = (Mapping) node;
    assertEquals(map.get("strings").toString(), "[bar, foo]");
    assertEquals(Util.toYamlString(map.get("strings")).trim(), "- \"bar\"\n- \"foo\"");
}
Also used : CNode(io.jenkins.plugins.casc.model.CNode) ConfiguratorRegistry(io.jenkins.plugins.casc.ConfiguratorRegistry) ConfigurationContext(io.jenkins.plugins.casc.ConfigurationContext) Configurator(io.jenkins.plugins.casc.Configurator) Mapping(io.jenkins.plugins.casc.model.Mapping) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 22 with CNode

use of io.jenkins.plugins.casc.model.CNode in project configuration-as-code-plugin by jenkinsci.

the class DataBoundConfiguratorTest method exportYaml.

@Test
public void exportYaml() throws Exception {
    Foo foo = new Foo("foo", true, 42);
    foo.setZot("zot");
    foo.setDbl(12.34);
    // whole numbers are exported as "<number>.0"
    foo.setFlt(1f);
    ConfiguratorRegistry registry = ConfiguratorRegistry.get();
    final Configurator c = registry.lookupOrFail(Foo.class);
    final ConfigurationContext context = new ConfigurationContext(registry);
    final CNode node = c.describe(foo, context);
    assertNotNull(node);
    assertTrue(node instanceof Mapping);
    Mapping map = (Mapping) node;
    assertEquals(map.get("foo").toString(), "foo");
    assertEquals(map.get("bar").toString(), "true");
    assertEquals(map.get("qix").toString(), "42");
    assertEquals(map.get("zot").toString(), "zot");
    assertEquals(map.get("dbl").toString(), "12.34");
    assertEquals(map.get("flt").toString(), "1.0");
    assertEquals(Util.toYamlString(map.get("foo")).trim(), "\"foo\"");
    assertEquals(Util.toYamlString(map.get("bar")).trim(), "true");
    assertEquals(Util.toYamlString(map.get("qix")).trim(), "42");
    assertEquals(Util.toYamlString(map.get("zot")).trim(), "\"zot\"");
    assertEquals(Util.toYamlString(map.get("dbl")).trim(), "\"12.34\"");
    assertEquals(Util.toYamlString(map.get("flt")).trim(), "\"1.0\"");
    assertFalse(map.containsKey("other"));
}
Also used : CNode(io.jenkins.plugins.casc.model.CNode) ConfiguratorRegistry(io.jenkins.plugins.casc.ConfiguratorRegistry) ConfigurationContext(io.jenkins.plugins.casc.ConfigurationContext) Configurator(io.jenkins.plugins.casc.Configurator) Mapping(io.jenkins.plugins.casc.model.Mapping) Test(org.junit.Test)

Example 23 with CNode

use of io.jenkins.plugins.casc.model.CNode in project configuration-as-code-plugin by jenkinsci.

the class CredentialsTest method testExportSSHCredentials.

@ConfiguredWithCode("GlobalCredentials.yml")
@Test
public void testExportSSHCredentials() throws Exception {
    ConfiguratorRegistry registry = ConfiguratorRegistry.get();
    ConfigurationContext context = new ConfigurationContext(registry);
    CredentialsRootConfigurator root = ExtensionList.lookupSingleton(CredentialsRootConfigurator.class);
    CNode node = root.describe(root.getTargetComponent(context), context);
    assertNotNull(node);
    final Mapping mapping = node.asMapping();
    Mapping sshCredential = mapping.get("system").asMapping().get("domainCredentials").asSequence().get(0).asMapping().get("credentials").asSequence().get(1).asMapping().get("basicSSHUserPrivateKey").asMapping();
    assertThat(sshCredential.getScalarValue("scope"), is("SYSTEM"));
    assertThat(sshCredential.getScalarValue("id"), is("agent-private-key"));
    assertThat(sshCredential.getScalarValue("username"), is("agentuser"));
    String passphrase = sshCredential.getScalarValue("passphrase");
    assertThat(passphrase, not("password"));
    assertThat(requireNonNull(Secret.decrypt(passphrase), "Failed to decrypt the password from " + passphrase).getPlainText(), is("password"));
    String sshKeyExported = sshCredential.get("privateKeySource").asMapping().get("directEntry").asMapping().get("privateKey").asScalar().getValue();
    assertThat(sshKeyExported, not("sp0ds9d+skkfjf"));
    assertThat(requireNonNull(Secret.decrypt(sshKeyExported)).getPlainText(), is("sp0ds9d+skkfjf"));
}
Also used : CNode(io.jenkins.plugins.casc.model.CNode) CredentialsRootConfigurator(com.cloudbees.plugins.credentials.casc.CredentialsRootConfigurator) Mapping(io.jenkins.plugins.casc.model.Mapping) Test(org.junit.Test) ConfiguredWithCode(io.jenkins.plugins.casc.misc.ConfiguredWithCode)

Example 24 with CNode

use of io.jenkins.plugins.casc.model.CNode in project configuration-as-code-plugin by jenkinsci.

the class GitToolInstallationTest method export_git_installations.

@Test
public void export_git_installations() throws Exception {
    ConfiguratorRegistry registry = ConfiguratorRegistry.get();
    ConfigurationContext context = new ConfigurationContext(registry);
    CNode yourAttribute = getToolRoot(context).get("git");
    String exported = toYamlString(yourAttribute);
    String expected = toStringFromYamlFile(this, "GitToolInstallationTestExpected.yml");
    assertThat(exported, is(expected));
}
Also used : CNode(io.jenkins.plugins.casc.model.CNode) Util.toYamlString(io.jenkins.plugins.casc.misc.Util.toYamlString) Test(org.junit.Test)

Example 25 with CNode

use of io.jenkins.plugins.casc.model.CNode in project configuration-as-code-plugin by jenkinsci.

the class GlobalNodePropertiesTest method export.

@Test
public void export() throws Exception {
    ConfiguratorRegistry registry = ConfiguratorRegistry.get();
    ConfigurationContext context = new ConfigurationContext(registry);
    CNode yourAttribute = getJenkinsRoot(context).get("globalNodeProperties");
    String exported = toYamlString(yourAttribute);
    String expected = toStringFromYamlFile(this, "GlobalNodePropertiesTestExpected.yml");
    assertThat(exported, is(expected));
}
Also used : CNode(io.jenkins.plugins.casc.model.CNode) Util.toYamlString(io.jenkins.plugins.casc.misc.Util.toYamlString) Test(org.junit.Test)

Aggregations

CNode (io.jenkins.plugins.casc.model.CNode)36 Test (org.junit.Test)30 ConfiguredWithCode (io.jenkins.plugins.casc.misc.ConfiguredWithCode)16 Util.toYamlString (io.jenkins.plugins.casc.misc.Util.toYamlString)15 ConfigurationContext (io.jenkins.plugins.casc.ConfigurationContext)13 ConfiguratorRegistry (io.jenkins.plugins.casc.ConfiguratorRegistry)13 Mapping (io.jenkins.plugins.casc.model.Mapping)12 Configurator (io.jenkins.plugins.casc.Configurator)9 Issue (org.jvnet.hudson.test.Issue)6 Node (org.yaml.snakeyaml.nodes.Node)5 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)4 ConfiguredWithReadme (io.jenkins.plugins.casc.misc.ConfiguredWithReadme)3 StringWriter (java.io.StringWriter)3 Jenkins (jenkins.model.Jenkins)3 YAMLException (org.yaml.snakeyaml.error.YAMLException)3 CredentialsRootConfigurator (com.cloudbees.plugins.credentials.casc.CredentialsRootConfigurator)2 ProxyConfiguration (hudson.ProxyConfiguration)2 Secret (hudson.util.Secret)2 ConfigurationAsCode (io.jenkins.plugins.casc.ConfigurationAsCode)2