From 303a3dec576f5c390855a95435d1b5b635856a7d Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Thu, 27 Feb 2014 12:31:09 -0800 Subject: [PATCH] Generates project xml document for creation request --- .../api/generator/ProjectGenerator.java | 38 +++++++++++++++++++ .../api/generator/ProjectGeneratorTest.java | 25 ++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/main/java/org/rundeck/api/generator/ProjectGenerator.java create mode 100644 src/test/java/org/rundeck/api/generator/ProjectGeneratorTest.java diff --git a/src/main/java/org/rundeck/api/generator/ProjectGenerator.java b/src/main/java/org/rundeck/api/generator/ProjectGenerator.java new file mode 100644 index 0000000..37a45a4 --- /dev/null +++ b/src/main/java/org/rundeck/api/generator/ProjectGenerator.java @@ -0,0 +1,38 @@ +package org.rundeck.api.generator; + +import org.dom4j.Document; +import org.dom4j.DocumentFactory; +import org.dom4j.Element; +import org.rundeck.api.domain.ProjectConfig; +import org.rundeck.api.domain.RundeckProject; + +/** + * ProjectGenerator is ... + * + * @author greg + * @since 2014-02-27 + */ +public class ProjectGenerator { + RundeckProject project; + + public ProjectGenerator(RundeckProject project) { + this.project = project; + } + + public Document generate() { + Document projectDom = DocumentFactory.getInstance().createDocument(); + Element rootElem = projectDom.addElement("project"); + rootElem.addElement("name").setText(project.getName()); + ProjectConfig configuration = project.getProjectConfig(); + if (null != configuration) { + + Element config = rootElem.addElement("config"); + for (String s : configuration.getProperties().keySet()) { + Element property = config.addElement("property"); + property.addAttribute("key", s); + property.addAttribute("value", configuration.getProperties().get(s)); + } + } + return projectDom; + } +} diff --git a/src/test/java/org/rundeck/api/generator/ProjectGeneratorTest.java b/src/test/java/org/rundeck/api/generator/ProjectGeneratorTest.java new file mode 100644 index 0000000..a9c5b1b --- /dev/null +++ b/src/test/java/org/rundeck/api/generator/ProjectGeneratorTest.java @@ -0,0 +1,25 @@ +package org.rundeck.api.generator; + +import junit.framework.Assert; +import org.dom4j.Document; +import org.junit.Test; +import org.rundeck.api.domain.RundeckProject; + +/** + * ProjectGeneratorTest is ... + * + * @author greg + * @since 2014-02-27 + */ +public class ProjectGeneratorTest { + @Test + public void generate() { + RundeckProject project = new RundeckProject(); + project.setName("monkey1"); + + Document doc = new ProjectGenerator(project).generate(); + Assert.assertEquals("project", doc.getRootElement().getName()); + Assert.assertNotNull(doc.selectSingleNode("/project/name")); + Assert.assertEquals("monkey1", doc.selectSingleNode("/project/name").getText()); + } +}