The templates in CodeRunner inspired me to automate the source folder creation step generally performed when creating an ANT project. Instead of creating the source folders manually, I use the task that I created in the ANT template I stored in CodeRunner. Now the steps I perform to create an ANT project are
1. use mkdir to create a project folder
2. open CodeRunner and use the JUnitProject template which creates a ANT build file
3. run the command in red, below including the path I want for the source code
[batchbrowser] ant create -Dsrcfolder=xxx/yyy/zzz
Buildfile: /Users/javapro/dev/src/java/batchbrowser/build.xml create:
[mkdir] Created dir: /Users/javapro/dev/src/java/batchbrowser/bin
[mkdir] Created dir: /Users/javapro/dev/src/java/batchbrowser/lib
[mkdir] Created dir: /Users/javapro/dev/src/java/batchbrowser/src/main/java/com/bank/batchbrowser [mkdir] Created dir: /Users/javapro/dev/src/java/batchbrowser/src/test/java/com/bank/batchbrowser BUILD SUCCESSFUL
Total time: 0 seconds
[batchbrowser]
The JUnitProject template I stored in CodeRunner is a generic ANT build file that accepts the command line property srcfolder and uses this property in the create step. and here's the code I need tomorrow at work . . .
package com.bank.batchbrowser; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import java.net.URLEncoder; public class BatchBrowser { public static boolean verifyResponseContains(String url, String content) throws Exception { try { HttpGet httpget = new HttpGet(url); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instream = entity.getContent(); String data = PageReader.readStream(instream); return data.indexOf(content) > -1; } } catch (Exception e) { System.out.println(e.getMessage()); } return false; } }
package com.bank.batchbrowser; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; public class PageReader { public static String readStream(InputStream is) throws IOException { int n = is.available(); char[] buffer = new char[n]; Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); Writer writer = new StringWriter(); while ((n = reader.read(buffer, 0, n)) != -1) { writer.write(buffer, 0, n); } return writer.toString(); } }
package com.bank.batchbrowser; import org.junit.*; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import java.net.URLEncoder; public class BatchBrowserTest { String url = "http://localhost:8080/empower/atm/prefs?customerID=123456789&atm=FG3781"; @Test public void urlTest() throws Exception { try { HttpGet httpget = new HttpGet(url); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instream = entity.getContent(); String data = PageReader.readStream(instream); assertTrue(true); } } catch (Exception e) { fail(e.getMessage()); } } @Test public void testUrlValidation() throws Exception { try { assertTrue(BatchBrowser.verifyResponseContains(url, "FG3781")); } catch (Exception e) { fail(e.getMessage()); } } }