From 01cd512b0b758b34bd623ed92ef6cf566376f0c1 Mon Sep 17 00:00:00 2001 From: Vincent Behar Date: Wed, 6 Jul 2011 22:58:09 +0200 Subject: [PATCH] internal refactoring : use a generic parser for list of elements --- .../java/org/rundeck/api/RundeckClient.java | 20 +-- .../rundeck/api/parser/ExecutionsParser.java | 55 ------- .../{JobsParser.java => ListParser.java} | 27 ++-- .../org/rundeck/api/parser/NodesParser.java | 55 ------- .../rundeck/api/parser/ProjectsParser.java | 55 ------- .../api/parser/ExecutionsParserTest.java | 80 ---------- .../rundeck/api/parser/JobsParserTest.java | 55 ------- .../rundeck/api/parser/ListParserTest.java | 147 ++++++++++++++++++ .../rundeck/api/parser/NodesParserTest.java | 56 ------- .../api/parser/ProjectsParserTest.java | 49 ------ 10 files changed, 172 insertions(+), 427 deletions(-) delete mode 100644 src/main/java/org/rundeck/api/parser/ExecutionsParser.java rename src/main/java/org/rundeck/api/parser/{JobsParser.java => ListParser.java} (58%) delete mode 100644 src/main/java/org/rundeck/api/parser/NodesParser.java delete mode 100644 src/main/java/org/rundeck/api/parser/ProjectsParser.java delete mode 100644 src/test/java/org/rundeck/api/parser/ExecutionsParserTest.java delete mode 100644 src/test/java/org/rundeck/api/parser/JobsParserTest.java create mode 100644 src/test/java/org/rundeck/api/parser/ListParserTest.java delete mode 100644 src/test/java/org/rundeck/api/parser/NodesParserTest.java delete mode 100644 src/test/java/org/rundeck/api/parser/ProjectsParserTest.java diff --git a/src/main/java/org/rundeck/api/RundeckClient.java b/src/main/java/org/rundeck/api/RundeckClient.java index 8e2b677..b99f287 100644 --- a/src/main/java/org/rundeck/api/RundeckClient.java +++ b/src/main/java/org/rundeck/api/RundeckClient.java @@ -24,19 +24,16 @@ import org.apache.commons.lang.StringUtils; import org.rundeck.api.RundeckApiException.RundeckApiLoginException; import org.rundeck.api.domain.RundeckAbort; import org.rundeck.api.domain.RundeckExecution; +import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; import org.rundeck.api.domain.RundeckJob; import org.rundeck.api.domain.RundeckNode; import org.rundeck.api.domain.RundeckProject; -import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; import org.rundeck.api.parser.AbortParser; import org.rundeck.api.parser.ExecutionParser; -import org.rundeck.api.parser.ExecutionsParser; import org.rundeck.api.parser.JobParser; -import org.rundeck.api.parser.JobsParser; +import org.rundeck.api.parser.ListParser; import org.rundeck.api.parser.NodeParser; -import org.rundeck.api.parser.NodesParser; import org.rundeck.api.parser.ProjectParser; -import org.rundeck.api.parser.ProjectsParser; import org.rundeck.api.util.AssertUtil; import org.rundeck.api.util.ParametersUtil; @@ -120,7 +117,8 @@ public class RundeckClient implements Serializable { * @throws RundeckApiLoginException if the login failed */ public List getProjects() throws RundeckApiException, RundeckApiLoginException { - return new ApiCall(this).get(new ApiPathBuilder("/projects"), new ProjectsParser("result/projects/project")); + return new ApiCall(this).get(new ApiPathBuilder("/projects"), + new ListParser(new ProjectParser(), "result/projects/project")); } /** @@ -193,7 +191,7 @@ public class RundeckClient implements Serializable { .param("jobFilter", jobFilter) .param("groupPath", groupPath) .param("idlist", StringUtils.join(jobIds, ",")), - new JobsParser("result/jobs/job")); + new ListParser(new JobParser(), "result/jobs/job")); } /** @@ -590,7 +588,8 @@ public class RundeckClient implements Serializable { RundeckApiLoginException, IllegalArgumentException { AssertUtil.notBlank(project, "project is mandatory get all running executions !"); return new ApiCall(this).get(new ApiPathBuilder("/executions/running").param("project", project), - new ExecutionsParser("result/executions/execution")); + new ListParser(new ExecutionParser(), + "result/executions/execution")); } /** @@ -641,7 +640,8 @@ public class RundeckClient implements Serializable { status != null ? StringUtils.lowerCase(status.toString()) : null) .param("max", max) .param("offset", offset), - new ExecutionsParser("result/executions/execution")); + new ListParser(new ExecutionParser(), + "result/executions/execution")); } /** @@ -725,7 +725,7 @@ public class RundeckClient implements Serializable { AssertUtil.notBlank(project, "project is mandatory to get all nodes !"); return new ApiCall(this).get(new ApiPathBuilder("/resources").param("project", project) .nodeFilters(nodeFilters), - new NodesParser("project/node")); + new ListParser(new NodeParser(), "project/node")); } /** diff --git a/src/main/java/org/rundeck/api/parser/ExecutionsParser.java b/src/main/java/org/rundeck/api/parser/ExecutionsParser.java deleted file mode 100644 index a170173..0000000 --- a/src/main/java/org/rundeck/api/parser/ExecutionsParser.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.util.ArrayList; -import java.util.List; -import org.dom4j.Node; -import org.rundeck.api.domain.RundeckExecution; - -/** - * Parser for a {@link List} of {@link RundeckExecution} - * - * @author Vincent Behar - */ -public class ExecutionsParser implements XmlNodeParser> { - - private final String xpath; - - /** - * @param xpath of the executions elements - */ - public ExecutionsParser(String xpath) { - super(); - this.xpath = xpath; - } - - @Override - public List parseXmlNode(Node node) { - List executions = new ArrayList(); - - @SuppressWarnings("unchecked") - List execNodes = node.selectNodes(xpath); - - for (Node execNode : execNodes) { - RundeckExecution execution = new ExecutionParser().parseXmlNode(execNode); - executions.add(execution); - } - - return executions; - } - -} diff --git a/src/main/java/org/rundeck/api/parser/JobsParser.java b/src/main/java/org/rundeck/api/parser/ListParser.java similarity index 58% rename from src/main/java/org/rundeck/api/parser/JobsParser.java rename to src/main/java/org/rundeck/api/parser/ListParser.java index cfed818..3807f6a 100644 --- a/src/main/java/org/rundeck/api/parser/JobsParser.java +++ b/src/main/java/org/rundeck/api/parser/ListParser.java @@ -18,38 +18,41 @@ package org.rundeck.api.parser; import java.util.ArrayList; import java.util.List; import org.dom4j.Node; -import org.rundeck.api.domain.RundeckJob; /** - * Parser for a {@link List} of {@link RundeckJob} + * Parser for a {@link List} of elements * * @author Vincent Behar */ -public class JobsParser implements XmlNodeParser> { +public class ListParser implements XmlNodeParser> { + + private final XmlNodeParser parser; private final String xpath; /** - * @param xpath of the jobs elements + * @param parser for an individual element + * @param xpath of the elements */ - public JobsParser(String xpath) { + public ListParser(XmlNodeParser parser, String xpath) { super(); + this.parser = parser; this.xpath = xpath; } @Override - public List parseXmlNode(Node node) { - List jobs = new ArrayList(); + public List parseXmlNode(Node node) { + List elements = new ArrayList(); @SuppressWarnings("unchecked") - List jobNodes = node.selectNodes(xpath); + List elementNodes = node.selectNodes(xpath); - for (Node jobNode : jobNodes) { - RundeckJob job = new JobParser().parseXmlNode(jobNode); - jobs.add(job); + for (Node elementNode : elementNodes) { + T element = parser.parseXmlNode(elementNode); + elements.add(element); } - return jobs; + return elements; } } diff --git a/src/main/java/org/rundeck/api/parser/NodesParser.java b/src/main/java/org/rundeck/api/parser/NodesParser.java deleted file mode 100644 index 3716bb7..0000000 --- a/src/main/java/org/rundeck/api/parser/NodesParser.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.util.ArrayList; -import java.util.List; -import org.dom4j.Node; -import org.rundeck.api.domain.RundeckNode; - -/** - * Parser for a {@link List} of {@link RundeckNode} - * - * @author Vincent Behar - */ -public class NodesParser implements XmlNodeParser> { - - private final String xpath; - - /** - * @param xpath of the rundeck-nodes elements - */ - public NodesParser(String xpath) { - super(); - this.xpath = xpath; - } - - @Override - public List parseXmlNode(Node node) { - List rundeckNodes = new ArrayList(); - - @SuppressWarnings("unchecked") - List rundeckNodeNodes = node.selectNodes(xpath); - - for (Node rundeckNodeNode : rundeckNodeNodes) { - RundeckNode rundeckNode = new NodeParser().parseXmlNode(rundeckNodeNode); - rundeckNodes.add(rundeckNode); - } - - return rundeckNodes; - } - -} diff --git a/src/main/java/org/rundeck/api/parser/ProjectsParser.java b/src/main/java/org/rundeck/api/parser/ProjectsParser.java deleted file mode 100644 index 1c656f1..0000000 --- a/src/main/java/org/rundeck/api/parser/ProjectsParser.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.util.ArrayList; -import java.util.List; -import org.dom4j.Node; -import org.rundeck.api.domain.RundeckProject; - -/** - * Parser for a {@link List} of {@link RundeckProject} - * - * @author Vincent Behar - */ -public class ProjectsParser implements XmlNodeParser> { - - private final String xpath; - - /** - * @param xpath of the projects elements - */ - public ProjectsParser(String xpath) { - super(); - this.xpath = xpath; - } - - @Override - public List parseXmlNode(Node node) { - List projects = new ArrayList(); - - @SuppressWarnings("unchecked") - List projectNodes = node.selectNodes(xpath); - - for (Node projectNode : projectNodes) { - RundeckProject project = new ProjectParser().parseXmlNode(projectNode); - projects.add(project); - } - - return projects; - } - -} diff --git a/src/test/java/org/rundeck/api/parser/ExecutionsParserTest.java b/src/test/java/org/rundeck/api/parser/ExecutionsParserTest.java deleted file mode 100644 index 3827c45..0000000 --- a/src/test/java/org/rundeck/api/parser/ExecutionsParserTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.io.InputStream; -import java.util.Date; -import java.util.List; -import org.dom4j.Document; -import org.junit.Assert; -import org.junit.Test; -import org.rundeck.api.domain.RundeckExecution; -import org.rundeck.api.domain.RundeckJob; -import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; - -/** - * Test the {@link ExecutionsParser} - * - * @author Vincent Behar - */ -public class ExecutionsParserTest { - - @Test - public void parseExecutions() throws Exception { - InputStream input = getClass().getResourceAsStream("executions.xml"); - Document document = ParserHelper.loadDocument(input); - - List executions = new ExecutionsParser("result/executions/execution").parseXmlNode(document); - Assert.assertEquals(2, executions.size()); - - RundeckExecution exec1 = executions.get(0); - Assert.assertEquals(new Long(1), exec1.getId()); - Assert.assertEquals("http://localhost:4440/execution/follow/1", exec1.getUrl()); - Assert.assertEquals(ExecutionStatus.SUCCEEDED, exec1.getStatus()); - Assert.assertEquals("admin", exec1.getStartedBy()); - Assert.assertEquals(new Date(1308322895104L), exec1.getStartedAt()); - Assert.assertEquals(new Date(1308322959420L), exec1.getEndedAt()); - Assert.assertEquals(null, exec1.getAbortedBy()); - Assert.assertEquals("ls ${option.dir}", exec1.getDescription()); - - RundeckExecution exec2 = executions.get(1); - Assert.assertEquals(new Long(2), exec2.getId()); - Assert.assertEquals("http://localhost:4440/execution/follow/2", exec2.getUrl()); - Assert.assertEquals(ExecutionStatus.SUCCEEDED, exec2.getStatus()); - Assert.assertEquals("admin", exec2.getStartedBy()); - Assert.assertEquals(new Date(1309524165388L), exec2.getStartedAt()); - Assert.assertEquals(new Date(1309524174635L), exec2.getEndedAt()); - Assert.assertEquals(null, exec2.getAbortedBy()); - Assert.assertEquals("ls ${option.dir}", exec2.getDescription()); - - RundeckJob job1 = exec1.getJob(); - Assert.assertEquals("1", job1.getId()); - Assert.assertEquals("ls", job1.getName()); - Assert.assertEquals("system", job1.getGroup()); - Assert.assertEquals("test", job1.getProject()); - Assert.assertEquals("list files", job1.getDescription()); - - RundeckJob job2 = exec2.getJob(); - Assert.assertEquals("1", job2.getId()); - Assert.assertEquals("ls", job2.getName()); - Assert.assertEquals("system", job2.getGroup()); - Assert.assertEquals("test", job2.getProject()); - Assert.assertEquals("list files", job2.getDescription()); - - Assert.assertEquals(job1, job2); - } - -} diff --git a/src/test/java/org/rundeck/api/parser/JobsParserTest.java b/src/test/java/org/rundeck/api/parser/JobsParserTest.java deleted file mode 100644 index b314541..0000000 --- a/src/test/java/org/rundeck/api/parser/JobsParserTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.io.InputStream; -import java.util.List; -import org.dom4j.Document; -import org.junit.Assert; -import org.junit.Test; -import org.rundeck.api.domain.RundeckJob; - -/** - * Test the {@link JobsParser} - * - * @author Vincent Behar - */ -public class JobsParserTest { - - @Test - public void parseJobs() throws Exception { - InputStream input = getClass().getResourceAsStream("jobs.xml"); - Document document = ParserHelper.loadDocument(input); - - List jobs = new JobsParser("result/jobs/job").parseXmlNode(document); - Assert.assertEquals(2, jobs.size()); - - RundeckJob job1 = jobs.get(0); - Assert.assertEquals("1", job1.getId()); - Assert.assertEquals("ls", job1.getName()); - Assert.assertEquals("list files", job1.getDescription()); - Assert.assertEquals("system", job1.getGroup()); - Assert.assertEquals("test", job1.getProject()); - - RundeckJob job2 = jobs.get(1); - Assert.assertEquals("2", job2.getId()); - Assert.assertEquals("ps", job2.getName()); - Assert.assertEquals("list processes", job2.getDescription()); - Assert.assertEquals("system", job2.getGroup()); - Assert.assertEquals("test", job2.getProject()); - } - -} diff --git a/src/test/java/org/rundeck/api/parser/ListParserTest.java b/src/test/java/org/rundeck/api/parser/ListParserTest.java new file mode 100644 index 0000000..f0bc221 --- /dev/null +++ b/src/test/java/org/rundeck/api/parser/ListParserTest.java @@ -0,0 +1,147 @@ +/* + * Copyright 2011 Vincent Behar + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.rundeck.api.parser; + +import java.io.InputStream; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import org.dom4j.Document; +import org.junit.Assert; +import org.junit.Test; +import org.rundeck.api.domain.RundeckExecution; +import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; +import org.rundeck.api.domain.RundeckJob; +import org.rundeck.api.domain.RundeckNode; +import org.rundeck.api.domain.RundeckProject; + +/** + * Test the {@link ListParser} + * + * @author Vincent Behar + */ +public class ListParserTest { + + @Test + public void parseExecutions() throws Exception { + InputStream input = getClass().getResourceAsStream("executions.xml"); + Document document = ParserHelper.loadDocument(input); + + List executions = new ListParser(new ExecutionParser(), + "result/executions/execution").parseXmlNode(document); + Assert.assertEquals(2, executions.size()); + + RundeckExecution exec1 = executions.get(0); + Assert.assertEquals(new Long(1), exec1.getId()); + Assert.assertEquals("http://localhost:4440/execution/follow/1", exec1.getUrl()); + Assert.assertEquals(ExecutionStatus.SUCCEEDED, exec1.getStatus()); + Assert.assertEquals("admin", exec1.getStartedBy()); + Assert.assertEquals(new Date(1308322895104L), exec1.getStartedAt()); + Assert.assertEquals(new Date(1308322959420L), exec1.getEndedAt()); + Assert.assertEquals(null, exec1.getAbortedBy()); + Assert.assertEquals("ls ${option.dir}", exec1.getDescription()); + + RundeckExecution exec2 = executions.get(1); + Assert.assertEquals(new Long(2), exec2.getId()); + Assert.assertEquals("http://localhost:4440/execution/follow/2", exec2.getUrl()); + Assert.assertEquals(ExecutionStatus.SUCCEEDED, exec2.getStatus()); + Assert.assertEquals("admin", exec2.getStartedBy()); + Assert.assertEquals(new Date(1309524165388L), exec2.getStartedAt()); + Assert.assertEquals(new Date(1309524174635L), exec2.getEndedAt()); + Assert.assertEquals(null, exec2.getAbortedBy()); + Assert.assertEquals("ls ${option.dir}", exec2.getDescription()); + + RundeckJob job1 = exec1.getJob(); + Assert.assertEquals("1", job1.getId()); + Assert.assertEquals("ls", job1.getName()); + Assert.assertEquals("system", job1.getGroup()); + Assert.assertEquals("test", job1.getProject()); + Assert.assertEquals("list files", job1.getDescription()); + + RundeckJob job2 = exec2.getJob(); + Assert.assertEquals("1", job2.getId()); + Assert.assertEquals("ls", job2.getName()); + Assert.assertEquals("system", job2.getGroup()); + Assert.assertEquals("test", job2.getProject()); + Assert.assertEquals("list files", job2.getDescription()); + + Assert.assertEquals(job1, job2); + } + + @Test + public void parseJobs() throws Exception { + InputStream input = getClass().getResourceAsStream("jobs.xml"); + Document document = ParserHelper.loadDocument(input); + + List jobs = new ListParser(new JobParser(), "result/jobs/job").parseXmlNode(document); + Assert.assertEquals(2, jobs.size()); + + RundeckJob job1 = jobs.get(0); + Assert.assertEquals("1", job1.getId()); + Assert.assertEquals("ls", job1.getName()); + Assert.assertEquals("list files", job1.getDescription()); + Assert.assertEquals("system", job1.getGroup()); + Assert.assertEquals("test", job1.getProject()); + + RundeckJob job2 = jobs.get(1); + Assert.assertEquals("2", job2.getId()); + Assert.assertEquals("ps", job2.getName()); + Assert.assertEquals("list processes", job2.getDescription()); + Assert.assertEquals("system", job2.getGroup()); + Assert.assertEquals("test", job2.getProject()); + } + + @Test + public void parseNodes() throws Exception { + InputStream input = getClass().getResourceAsStream("resources.xml"); + Document document = ParserHelper.loadDocument(input); + + List nodes = new ListParser(new NodeParser(), "project/node").parseXmlNode(document); + Assert.assertEquals(1, nodes.size()); + + RundeckNode node1 = nodes.get(0); + Assert.assertEquals("strongbad", node1.getName()); + Assert.assertEquals("Node", node1.getType()); + Assert.assertEquals("a development host", node1.getDescription()); + Assert.assertEquals(Arrays.asList("dev"), node1.getTags()); + Assert.assertEquals("strongbad.local", node1.getHostname()); + Assert.assertEquals("i386", node1.getOsArch()); + Assert.assertEquals("unix", node1.getOsFamily()); + Assert.assertEquals("Linux", node1.getOsName()); + Assert.assertEquals("2.6.35-30-generic-pae", node1.getOsVersion()); + Assert.assertEquals("rundeck", node1.getUsername()); + Assert.assertEquals(null, node1.getEditUrl()); + Assert.assertEquals(null, node1.getRemoteUrl()); + } + + @Test + public void parseProjects() throws Exception { + InputStream input = getClass().getResourceAsStream("projects.xml"); + Document document = ParserHelper.loadDocument(input); + + List projects = new ListParser(new ProjectParser(), "result/projects/project").parseXmlNode(document); + Assert.assertEquals(2, projects.size()); + + RundeckProject project1 = projects.get(0); + Assert.assertEquals("test", project1.getName()); + Assert.assertEquals("test project", project1.getDescription()); + + RundeckProject project2 = projects.get(1); + Assert.assertEquals("other", project2.getName()); + Assert.assertEquals(null, project2.getDescription()); + } + +} diff --git a/src/test/java/org/rundeck/api/parser/NodesParserTest.java b/src/test/java/org/rundeck/api/parser/NodesParserTest.java deleted file mode 100644 index f15cb7f..0000000 --- a/src/test/java/org/rundeck/api/parser/NodesParserTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.io.InputStream; -import java.util.Arrays; -import java.util.List; -import org.dom4j.Document; -import org.junit.Assert; -import org.junit.Test; -import org.rundeck.api.domain.RundeckNode; - -/** - * Test the {@link NodesParser} - * - * @author Vincent Behar - */ -public class NodesParserTest { - - @Test - public void parseNodes() throws Exception { - InputStream input = getClass().getResourceAsStream("resources.xml"); - Document document = ParserHelper.loadDocument(input); - - List nodes = new NodesParser("project/node").parseXmlNode(document); - Assert.assertEquals(1, nodes.size()); - - RundeckNode node1 = nodes.get(0); - Assert.assertEquals("strongbad", node1.getName()); - Assert.assertEquals("Node", node1.getType()); - Assert.assertEquals("a development host", node1.getDescription()); - Assert.assertEquals(Arrays.asList("dev"), node1.getTags()); - Assert.assertEquals("strongbad.local", node1.getHostname()); - Assert.assertEquals("i386", node1.getOsArch()); - Assert.assertEquals("unix", node1.getOsFamily()); - Assert.assertEquals("Linux", node1.getOsName()); - Assert.assertEquals("2.6.35-30-generic-pae", node1.getOsVersion()); - Assert.assertEquals("rundeck", node1.getUsername()); - Assert.assertEquals(null, node1.getEditUrl()); - Assert.assertEquals(null, node1.getRemoteUrl()); - } - -} diff --git a/src/test/java/org/rundeck/api/parser/ProjectsParserTest.java b/src/test/java/org/rundeck/api/parser/ProjectsParserTest.java deleted file mode 100644 index a9ebf9b..0000000 --- a/src/test/java/org/rundeck/api/parser/ProjectsParserTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2011 Vincent Behar - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.rundeck.api.parser; - -import java.io.InputStream; -import java.util.List; -import org.dom4j.Document; -import org.junit.Assert; -import org.junit.Test; -import org.rundeck.api.domain.RundeckProject; - -/** - * Test the {@link ProjectsParser} - * - * @author Vincent Behar - */ -public class ProjectsParserTest { - - @Test - public void parseProjects() throws Exception { - InputStream input = getClass().getResourceAsStream("projects.xml"); - Document document = ParserHelper.loadDocument(input); - - List projects = new ProjectsParser("result/projects/project").parseXmlNode(document); - Assert.assertEquals(2, projects.size()); - - RundeckProject project1 = projects.get(0); - Assert.assertEquals("test", project1.getName()); - Assert.assertEquals("test project", project1.getDescription()); - - RundeckProject project2 = projects.get(1); - Assert.assertEquals("other", project2.getName()); - Assert.assertEquals(null, project2.getDescription()); - } - -}