Sunday, April 29, 2012

Servlet Unit Testing

Required easyMock.jar file
download from http://www.easymock.org/Downloads.html

our servlet class
 NameServlet.java:
-------------------


import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class NameServlet extends HttpServlet
{
  private static final long serialVersionUID = 1L;

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException
  {
    String firstName = req.getParameter("firstName");
    String lastName = req.getParameter("lastName");
   
    if (firstName != null) req.setAttribute("firstName", firstName);
    if (lastName != null) req.setAttribute("lastName", lastName);
   
 
  }
}

test class for above class

NameServletTest.java:
-----------------------

import static org.easymock.EasyMock.*;

import javax.servlet.http.HttpServletRequest;

import junit.framework.TestCase;
//other imports omitted

public class NameServletTest extends TestCase
{
    public void testWithMockObjects() throws Exception
    {
        // strict mock forces you to specify the correct order of method calls
        HttpServletRequest request = createStrictMock(HttpServletRequest.class);

        expect(request.getParameter("firstName")).andReturn("laxman");
        expect(request.getParameter("lastName")).andReturn("asman");

        request.setAttribute("firstName", "laxman");
        request.setAttribute("lastName", "asman");
       
       
       
        //unexpected method calls after this point will throw exceptions
        replay(request);
       
        new NameServlet().doPost(request, null);
       
        //check that the behaviour expected is actually
        verify(request);
    }
   
    //more test methods omitted ...
}

Friday, April 27, 2012

Attachment using JAXWS Style of WebService


Service:
--------

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.asman;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Date;
import javax.activation.DataHandler;
import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 *
 * @author laxman
 */
@WebService()
public class AttachmentService_Impl {
   

       public DataHandler dataHandler=null;
@WebMethod
       public String attachAnyFile(DataHandler dataHandler, String file)

           {

                  String filename="";

             try {

                    //DataHandler dataHandler=new DataHandler(fileDataSource);

                    File f=new File(file);

                    filename=f.getName();

                    System.out.println("\n\t Writing to File /" + filename);

                    BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(filename));

                    BufferedInputStream bin = new BufferedInputStream(dataHandler.getInputStream());



                    byte[] buffer = new byte[256];
                 while (true)

                    {
                      int bytesRead = bin.read(buffer);

                        if (bytesRead == -1)

                            break;

                        bout.write(buffer, 0, bytesRead);

                    }
                    bin.close();

                    bout.close();

                }

               catch (Exception e)

                {

                    System.out.println("\n\t [AttachmentService_Impl] Exception Occured While Writing in File : "+e);

                    return e.toString();

                }

               return ("\n\t File Attachment Completed Succesfully " + filename + "\t at " + new Date());

            }

}


Client:
-------

package com.asman;
02import javax.activation.DataHandler;
03import javax.activation.*;
04import java.io.*;
05public class Client
06{
07    public static void main(String[] ar) throws Exception
08    {
09        System.out.println("\n\tstart client");
10        AttachmentServiceImplService service=new AttachmentServiceImplService();
11        AttachmentServiceImpl port=service.getAttachmentServiceImplPort();
12 
13        String fileName_WithPath="d:/myfile.txt";
14     long length=new java.io.File fileName_WithPath.length();
17        System.out.println("\n\tCalling service to send a file from a customer...");
18 
19        BufferedInputStream bin = new BufferedInputStream(dataHandler.getInputStream());
20        byte b[]=new byte[(int)length];
21        bin.read(b);
22        String result = port.attachAnyFile(b,fileName_WithPath);
23        System.out.println("\n\t Result From Service: "+result);
24        System.out.println("\n\tend client");
25    }
26}