1
2
3
4
5
6
7
8 package net.kwfgrid.gworkflowdl;
9
10 import org.apache.log4j.Logger;
11 import org.jdom.JDOMException;
12 import junit.framework.Test;
13 import junit.framework.TestSuite;
14 import junit.framework.Assert;
15 import net.kwfgrid.gworkflowdl.structure.*;
16 import net.kwfgrid.gworkflowdl.conversion.EPNML2GWorkflowDLConverter;
17 import net.kwfgrid.gworkflowdl.conversion.FileUtils;
18 import net.kwfgrid.gworkflowdl.conversion.EPML2GWorkflowDLConverter;
19 import net.kwfgrid.gworkflowdl.conversion.GWorkflowDLConverter;
20
21 import java.io.IOException;
22
23 /***
24 * <code>
25 * maven -Dtestcase=net.kwfgrid.gworkflowdl.WorkflowConversionTest test:single
26 * </code>
27 *
28 * @author Andreas Hoheisel
29 * (<a href="http://www.andreas-hoheisel.de">www.andreas-hoheisel.de</a>)
30 * @version $Id: WorkflowConversionTest.java 1353 2010-03-04 16:21:48Z andreas.hoheisel@first.fraunhofer.de $
31 */
32 public final class WorkflowConversionTest extends AbstractTestCase {
33
34 /***
35 * log4j logger
36 */
37 static Logger logger = Logger.getLogger(WorkflowConversionTest.class);
38
39
40 /***
41 * Create the test case.
42 *
43 * @param testName name of the test case
44 */
45 public WorkflowConversionTest(String testName) {
46 super(testName);
47 System.setProperty("gworkflowdl.xml.validation","true");
48 }
49
50 /***
51 * @return the suite of tests being tested
52 */
53 public static Test suite() {
54 return new TestSuite(WorkflowConversionTest.class);
55 }
56
57 public void testGWorkflowDL20to21() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
58 String fn = "src/test/net/kwfgrid/gworkflowdl/gworkflowdl_test_2-0.gwdl";
59 GWorkflowDLConverter converter = new GWorkflowDLConverter("gworkflowdl_2_0-to-2_1.xsl");
60 String gwdl20 = FileUtils.readFile(getTestFile(fn));
61 System.out.println(gwdl20);
62 String gwdl21 = converter.convert(gwdl20);
63 System.out.println(gwdl21);
64 Workflow workflow = JdomString.string2workflow(gwdl21);
65 Assert.assertEquals("Number or transitions",1,workflow.getTransitionIDs().length);
66 Assert.assertEquals("Number or places",5,workflow.getPlaceIDs().length);
67 Transition transition = workflow.getEnabledTransitions()[0];
68 Assert.assertEquals("Abstraction level", Operation.GREEN, transition.getAbstractionLevel());
69 OperationClass operationClass = (OperationClass) transition.getOperation().get();
70 Assert.assertEquals("operation class", "urn:dgrdl:service:sort", operationClass.getName());
71 Assert.assertEquals("Number of operation candidates", 2, operationClass.getOperationCount());
72 OperationCandidate[] candidates = operationClass.getOperationCandidates();
73
74 Assert.assertEquals("type", "soap", candidates[0].getType());
75 Assert.assertEquals("operationName", "sort", candidates[0].getOperationName());
76 Assert.assertEquals("resourceName", "http://fhrg.first.fraunhofer.de:8080/linuxtoolbox/services/Sort?wsdl", candidates[0].getResourceName());
77 Assert.assertEquals("quality", 0.01f, 0.8f, candidates[0].getQuality());
78 Assert.assertEquals("selected", true, candidates[0].isSelected());
79
80 Assert.assertEquals("type", "subworkflow", candidates[1].getType());
81 Assert.assertEquals("operationName", "sort.gwdl", candidates[1].getOperationName());
82 Assert.assertEquals("resourceName", "http://fhrg.first.fraunhofer.de:8080/gwes", candidates[1].getResourceName());
83 Assert.assertEquals("quality", 0.01f, 0.2f, candidates[1].getQuality());
84 Assert.assertEquals("selected", false, candidates[1].isSelected());
85 }
86
87 public void testGWorkflowDL11to21() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
88 String fn = "src/test/net/kwfgrid/gworkflowdl/gworkflowdl_test_1-1.gwdl";
89 GWorkflowDLConverter converter = new GWorkflowDLConverter("gworkflowdl_1_1-to-2_1.xsl");
90 String gwdl11 = FileUtils.readFile(getTestFile(fn));
91 System.out.println(gwdl11);
92 String gwdl20 = converter.convert(gwdl11);
93 System.out.println(gwdl20);
94 Workflow workflow = JdomString.string2workflow(gwdl20);
95 Assert.assertEquals("Number or transitions",1,workflow.getTransitionIDs().length);
96 Assert.assertEquals("Number or places",5,workflow.getPlaceIDs().length);
97 Transition transition = workflow.getEnabledTransitions()[0];
98 Assert.assertEquals("Abstraction level", Operation.GREEN, transition.getAbstractionLevel());
99 OperationClass operationClass = (OperationClass) transition.getOperation().get();
100 Assert.assertEquals("operation class", "urn:dgrdl:service:sort", operationClass.getName());
101 Assert.assertEquals("Number of operation candidates", 2, operationClass.getOperationCount());
102 OperationCandidate[] candidates = operationClass.getOperationCandidates();
103
104 Assert.assertEquals("type", "soap", candidates[0].getType());
105 Assert.assertEquals("operationName", "sort", candidates[0].getOperationName());
106 Assert.assertEquals("resourceName", "http://fhrg.first.fraunhofer.de:8080/linuxtoolbox/services/Sort?wsdl", candidates[0].getResourceName());
107 Assert.assertEquals("quality", 0.01f, 0.8f, candidates[0].getQuality());
108 Assert.assertEquals("selected", true, candidates[0].isSelected());
109
110 Assert.assertEquals("type", "soap", candidates[1].getType());
111 Assert.assertEquals("operationName", "sort", candidates[1].getOperationName());
112 Assert.assertEquals("resourceName", "http://clown.first.fraunhofer.de:8080/linuxtoolbox/services/Sort?wsdl", candidates[1].getResourceName());
113 Assert.assertEquals("quality", 0.01f, 0.2f, candidates[1].getQuality());
114 Assert.assertEquals("selected", false, candidates[1].isSelected());
115 }
116
117 public void testGWorkflowDL10to21() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
118 String fn = "src/test/net/kwfgrid/gworkflowdl/gworkflowdl_test_1-0.gwdl";
119 GWorkflowDLConverter converter = new GWorkflowDLConverter("gworkflowdl_1_0-to-2_1.xsl");
120 String gwdl10 = FileUtils.readFile(getTestFile(fn));
121 System.out.println(gwdl10);
122 String gwdl20 = converter.convert(gwdl10);
123 System.out.println(gwdl20);
124 Workflow workflow = JdomString.string2workflow(gwdl20);
125 Assert.assertEquals("Number or transitions",1,workflow.getTransitionIDs().length);
126 Assert.assertEquals("Number or places",5,workflow.getPlaceIDs().length);
127 Transition transition = workflow.getEnabledTransitions()[0];
128 Assert.assertEquals("Abstraction level", Operation.GREEN, transition.getAbstractionLevel());
129 OperationClass operationClass = (OperationClass) transition.getOperation().get();
130 Assert.assertEquals("Number of operation candidates", 2, operationClass.getOperationCount());
131 OperationCandidate[] candidates = operationClass.getOperationCandidates();
132
133 Assert.assertEquals("type", "soap", candidates[0].getType());
134 Assert.assertEquals("operationName", "sort", candidates[0].getOperationName());
135 Assert.assertEquals("resourceName", "http://fhrg.first.fraunhofer.de:8080/linuxtoolbox/services/Sort?wsdl", candidates[0].getResourceName());
136 Assert.assertEquals("quality", 0.01f, 0.8f, candidates[0].getQuality());
137 Assert.assertEquals("selected", true, candidates[0].isSelected());
138
139 Assert.assertEquals("type", "soap", candidates[1].getType());
140 Assert.assertEquals("operationName", "sort", candidates[1].getOperationName());
141 Assert.assertEquals("resourceName", "http://clown.first.fraunhofer.de:8080/linuxtoolbox/services/Sort?wsdl", candidates[1].getResourceName());
142 Assert.assertEquals("quality", 0.01f, 0.2f, candidates[1].getQuality());
143 Assert.assertEquals("selected", false, candidates[1].isSelected());
144 }
145
146 public void testGWorkflowDL10MakeloadWorkflow() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
147 String fn = "src/test/net/kwfgrid/gworkflowdl/workflow-makeload_gwdl1-0.xml";
148 GWorkflowDLConverter converter = new GWorkflowDLConverter("gworkflowdl_1_0-to-2_1.xsl");
149 String gwdl10 = FileUtils.readFile(getTestFile(fn));
150 System.out.println(gwdl10);
151 String gwdl20 = converter.convert(gwdl10);
152 System.out.println(gwdl20);
153 Workflow workflow = JdomString.string2workflow(gwdl20);
154 Assert.assertEquals("Number or transitions",1,workflow.getTransitionIDs().length);
155 Assert.assertEquals("Number or places",4,workflow.getPlaceIDs().length);
156 Transition transition = workflow.getEnabledTransitions()[0];
157 Assert.assertEquals("Abstraction level", Operation.YELLOW, transition.getAbstractionLevel());
158 OperationClass operationClass = (OperationClass) transition.getOperation().get();
159 Assert.assertEquals("operation class", "urn:dgrdl:software:makeload100", operationClass.getName());
160 Assert.assertEquals("Number of operation candidates", 0, operationClass.getOperationCount());
161 }
162
163 public void testEPNML2GWorkflowDL() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
164 String fn = "src/test/net/kwfgrid/gworkflowdl/epnml-1-1.pnml";
165 EPNML2GWorkflowDLConverter converter = new EPNML2GWorkflowDLConverter();
166 String epnml = FileUtils.readFile(getTestFile(fn));
167 System.out.println(epnml);
168 String gwdl = converter.convertFromEPNMLToGWorkflowDL(epnml);
169 System.out.println(gwdl);
170 Workflow workflow = JdomString.string2workflow(gwdl);
171 Assert.assertEquals("Number or transitions",9,workflow.getTransitionIDs().length);
172 Assert.assertEquals("Number or places",11,workflow.getPlaceIDs().length);
173 }
174
175 public void testEPML2GWorkflowDL() throws IOException, JDOMException, CapacityException, WorkflowFormatException {
176 String fn = "src/test/net/kwfgrid/gworkflowdl/Lager.epml";
177 EPML2GWorkflowDLConverter converter = new EPML2GWorkflowDLConverter();
178 String epnml = FileUtils.readFile(getTestFile(fn));
179 System.out.println(epnml);
180 String gwdl = converter.convertFromEPMLToGWorkflowDL(epnml);
181 System.out.println(gwdl);
182 Workflow workflow = JdomString.string2workflow(gwdl);
183 Assert.assertEquals("Number or transitions",5,workflow.getTransitionIDs().length);
184 Assert.assertEquals("Number or places",6,workflow.getPlaceIDs().length);
185 }
186
187 }