@Override public String getContentType() { TestDataJavaEE.getInstance().accessContentType(); return contentType; }
public JeeData getJeeData(){ return new JeeData(httpRequestParameters,dispatchers,readContentType,partNames,wasAServletInitialized,lookedUpContextNames); }
@Override public String getParameter(String arg0) { if(arg0 != null){ TestDataJavaEE.getInstance().accessedHttpRequestParameter(arg0); } String[] params = getParameterValues(arg0); if(params != null){ return params[0]; } return null; }
Assert.assertFalse(TestDataJavaEE.getInstance().wasContentTypeRead()); EvoServletState.initServlet(servlet); EvoHttpServletRequest req = EvoServletState.getRequest(); req.asPOST(); req.asTextXml(); servlet.service(req, EvoServletState.getResponse()); Assert.assertTrue(TestDataJavaEE.getInstance().wasContentTypeRead()); Assert.assertTrue(EvoServletState.getResponse().getBody().contains("42")); EvoServletState.reset(); EvoServletState.initServlet(servlet); req = EvoServletState.getRequest(); req.asPOST(); req.asMultipartFormData(); Assert.assertFalse(EvoServletState.getResponse().isCommitted()); servlet.service(req, EvoServletState.getResponse()); Assert.assertFalse(EvoServletState.getResponse().getBody().contains("42")); Assert.assertTrue(EvoServletState.getResponse().isCommitted());
@Test public void testParts() throws ServletException, IOException{ HttpServlet servlet = new HttpServlet() { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Collection<Part> parts = req.getParts(); String s = ""; for(Part p : parts){ Scanner in = new Scanner(p.getInputStream()); s += in.nextLine(); in.close(); } PrintWriter out = resp.getWriter(); out.print(s); out.close(); } }; String msg0 = "foo"; String msg1 = "bar"; EvoServletState.initServlet(servlet); EvoHttpServletRequest req = EvoServletState.getRequest(); req.asPOST(); req.asMultipartFormData(); req.addPart(new EvoPart("first", msg0)); req.addPart(new EvoPart("second", msg1)); servlet.service(req, EvoServletState.getResponse()); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfParts().size() == 0); Assert.assertTrue(EvoServletState.getResponse().getBody().equals(msg0+msg1)); }
Assert.assertFalse(TestDataJavaEE.getInstance().getViewOfDispatchers().contains(delegate)); EvoHttpServletRequest req = new EvoHttpServletRequest(); EvoHttpServletResponse resp = new EvoHttpServletResponse(); EvoServletConfig conf = new EvoServletConfig(); servlet.init(conf); conf.createDispatcher(delegate); servlet.init(conf); servlet.service(req, resp); String body = resp.getBody(); Assert.assertNotEquals(EvoHttpServletResponse.WARN_NO_COMMITTED, body); Assert.assertTrue(body.length() > 0); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfDispatchers().contains(delegate));
TestDataJavaEE.getInstance().reset(); if(DBManager.getInstance().isWasAccessed()) { DBManager.getInstance().initDB(); LoopCounter.getInstance().setActive(wasLoopCheckOn);
@Test public void testAccessToParam(){ String param = "foo"; Assert.assertFalse(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(param)); EvoHttpServletRequest req = new EvoHttpServletRequest(); String val = req.getParameter(param); Assert.assertNull(val); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(param)); req.addParam(param, "some value"); val = req.getParameter(param); Assert.assertNotNull(val); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(param)); }
@Test public void testParametersMap(){ String p1 = "p1"; String p2 = "p2"; Assert.assertFalse(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p1)); Assert.assertFalse(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p2)); EvoHttpServletRequest req = new EvoHttpServletRequest(); req.getParameterMap().containsKey(p1); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p1)); Assert.assertFalse(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p2)); req.getParameterMap().keySet().contains(p2); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p1)); Assert.assertTrue(TestDataJavaEE.getInstance().getViewOfHttpRequestParameters().contains(p2)); } }
@Before public void init(){ TestDataJavaEE.getInstance().reset(); EvoServletState.reset(); }
public void createDispatcher(String name){ if(name==null || name.trim().isEmpty()){ return; //do nothing } RequestDispatcher dis = new EvoRequestDispatcher(name); dispatchers.put(name,dis); TestDataJavaEE.getInstance().accessedDispatcher(name); }
@Override public Collection<Part> getParts() throws IOException, ServletException { if(!MULTIPART_FORM_CONTENT_FORMAT.equals(contentType)) { throw new ServletException("Cannot access parts if request is not of type "+MULTIPART_FORM_CONTENT_FORMAT); } TestDataJavaEE.getInstance().accessPart(null); return new ArrayList<Part>(){{addAll(parts.values());}}; }
@Before public void init(){ TestDataJavaEE.getInstance().reset(); }
@EvoSuiteInclude @Constraints(atMostOnce = true, noNullInputs = true, noDirectInsertion = true) public static <T extends Servlet> T initServlet( @BoundInputVariable(initializer = true, atMostOnce = true) T servlet) throws IllegalStateException, IllegalArgumentException, ServletException { if(servlet == null){ throw new IllegalArgumentException("Null servlet"); } if(EvoServletState.servlet != null){ throw new IllegalStateException("Should only be one servlet per test"); } EvoServletState.servlet = servlet; servlet.init(getConfiguration()); TestDataJavaEE.getInstance().setWasAServletInitialized(true); return servlet; }
@Override public boolean containsKey(Object k) { if (!(k instanceof String)) { return false; } String key = (String) k; if (key != null && !key.trim().isEmpty()) { TestDataJavaEE.getInstance().accessedHttpRequestParameter(key); } return super.containsKey(key); } });
@Override public Part getPart(String arg0) throws IOException, ServletException { if(!MULTIPART_FORM_CONTENT_FORMAT.equals(contentType)){ throw new ServletException("Cannot access parts if request is not of type "+MULTIPART_FORM_CONTENT_FORMAT); } TestDataJavaEE.getInstance().accessPart(arg0); return parts.get(arg0); }
@Override public Object lookup(String name) throws NamingException { if(name==null) { throw new NamingException("Null name"); } /* We need to keep track of what the SUT has tried to look up, so we can generate in the next generations */ TestDataJavaEE.getInstance().accessLookUpContextName(name); Binding b = bindings.get(name); if(b == null) { return null; } else { return b.getObject(); } }
private void handleJEE(TestCase test) { JeeData jeeData = TestDataJavaEE.getInstance().getJeeData(); test.getAccessedEnvironment().setJeeData(jeeData); if (jeeData.lookedUpContextNames.size() > 0) { addEnvironmentClassToCluster(EvoNamingContext.class); // TODO add method with right input type } if (!Properties.HANDLE_SERVLETS) { /* * Started to prepare custom mocks for Servlets, but then realized * that their behavior is very basic. As such, most likely they are * not needed, as they could be much better replaced by functional * mocks with Mockito... */ return; } if (jeeData.wasAServletInitialized) { addEnvironmentClassToCluster(EvoServletState.class); } // TODO TestDataJavaEE data for Servlets }
@Test public void testLookup() throws Exception{ InitialContext ic = new MockInitialContext(); String name = "global/service/AClass!AnInterface"; Object obj = ic.lookup(name); assertNull(obj); assertEquals(1 , TestDataJavaEE.getInstance().getViewOfLookedUpContextNames().size()); assertEquals(name, TestDataJavaEE.getInstance().getViewOfLookedUpContextNames().iterator().next()); }
@Override public String getContentType() { TestDataJavaEE.getInstance().accessContentType(); return contentType; }