1 /** 2 * Copyright 2005-2011 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.edl.impl; 17 18 import javax.servlet.http.HttpServletRequest; 19 import javax.xml.transform.OutputKeys; 20 import javax.xml.transform.Transformer; 21 import javax.xml.transform.TransformerConfigurationException; 22 import javax.xml.transform.dom.DOMSource; 23 import javax.xml.transform.stream.StreamResult; 24 25 import org.junit.Ignore; 26 import org.junit.Test; 27 import org.kuali.rice.edl.impl.service.EDocLiteService; 28 import org.kuali.rice.edl.impl.service.EdlServiceLocator; 29 import org.kuali.rice.kew.test.KEWTestCase; 30 import org.kuali.rice.krad.UserSession; 31 import org.w3c.dom.Document; 32 33 34 public class EDLCreationTest extends KEWTestCase { 35 36 protected void loadTestData() throws Exception { 37 super.loadXmlFile("widgets.xml"); 38 super.loadXmlFile("edlstyle.xml"); 39 super.loadXmlFile("TestEDL1.xml"); 40 super.loadXmlFile("EDLRoutingData.xml"); 41 } 42 43 @Ignore("This test needs to be implemented!") 44 @Test public void testEDLDOMCreationAndTransformation() throws Exception { 45 // ConfigContext.getCurrentContextConfig().overrideProperty(Config.EDL_CONFIG_LOCATION, "classpath:org/kuali/rice/kew/edl/EDLConfig1.xml"); 46 // WorkflowUser user = SpringServiceLocator.getUserService().getWorkflowUser(new NetworkIdVO("user1")); 47 // EDLController edlController = getEDLService().getEDLController("TestEDL1"); 48 // 49 // MockHttpServletRequest request = new MockHttpServletRequest(); 50 // request.setContentType("text/html"); 51 // request.setMethod("POST"); 52 // Transformer transformer = TransformerFactory.newInstance().newTransformer(); 53 // edlController.setEdlContext(getEDLContext(edlController, request, transformer, user)); 54 // Document dom = edlController.notifyComponents(); 55 // System.out.print(XmlJotter.jotNode(dom)); 56 // transform(dom, edlController.getStyle().newTransformer()); 57 } 58 59 @Ignore("This test needs to be implemented!") 60 @Test public void testEDLCreationWithWorkflowDocument() throws Exception { 61 // ConfigContext.getCurrentContextConfig().overrideProperty(Config.EDL_CONFIG_LOCATION, "classpath:org/kuali/rice/kew/edl/EDLConfig1.xml"); 62 // WorkflowUser user = SpringServiceLocator.getUserService().getWorkflowUser(new NetworkIdVO("user1")); 63 // EDLController edlController = getEDLService().getEDLController("TestEDL1"); 64 // 65 // MockHttpServletRequest request = new MockHttpServletRequest(); 66 // request.setContentType("text/html"); 67 // //make our params create the document 68 // request.addParameter("userAction", "create"); 69 // request.setMethod("POST"); 70 // Transformer transformer = edlController.getStyle().newTransformer(); 71 // EDLContext edlContext = getEDLContext(edlController, request, transformer, user); 72 // edlController.setEdlContext(edlContext); 73 // Document dom = edlController.notifyComponents(); 74 // System.out.print(XmlJotter.jotNode(dom)); 75 // transform(dom, transformer); 76 // 77 // //now let's route our document 78 // HttpSession session = request.getSession(); 79 // request = new MockHttpServletRequest(); 80 // request.setContentType("text/html"); 81 // request.setMethod("POST"); 82 // //make our params create the document 83 // request.addParameter("userAction", "route"); 84 // request.addParameter("department", "AFRI COAS"); 85 // request.addParameter("creditType", "undergraduateCredit"); 86 // request.addParameter("academicSubjectCode", "American Studies"); 87 // request.addParameter("courseNumber", "A321"); 88 // request.addParameter("currentVersion", "0"); 89 // request.setSession(session); 90 // edlContext.getRequestParser().setRequest(request); 91 // 92 // transformer = edlController.getStyle().newTransformer(); 93 // edlController.setEdlContext(getEDLContext(edlController, request, transformer, user)); 94 // dom = edlController.notifyComponents(); 95 // System.out.print(XmlJotter.jotNode(dom)); 96 // transform(dom, transformer); 97 } 98 99 private void transform(Document dom, Transformer transformer) throws Exception { 100 transformer.setOutputProperty("indent", "yes"); 101 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 102 transformer.transform(new DOMSource(dom), new StreamResult(System.out)); 103 } 104 105 private EDLContext getEDLContext(EDLController edlController, HttpServletRequest request, Transformer transformer, String principalId) throws TransformerConfigurationException { 106 EDLContext edlContext = new EDLContext(); 107 edlContext.setEdocLiteAssociation(edlController.getEdocLiteAssociation()); 108 edlContext.setUserSession(new UserSession(principalId)); 109 edlContext.setTransformer(transformer); 110 // edlContext.setSessionAccessor(new SessionAccessor(request)); 111 edlContext.setRequestParser(new RequestParser(request)); 112 return edlContext; 113 } 114 115 private EDocLiteService getEDLService() { 116 return EdlServiceLocator.getEDocLiteService(); 117 } 118 119 }