FileDocCategorySizeDatePackage
SiteSearchTest.javaAPI DocExample2169Mon Feb 23 14:16:46 GMT 2004com.develop.ss.cactus

SiteSearchTest.java

package com.develop.ss.cactus;

import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import org.xml.sax.SAXException;
import com.develop.ss.web.SiteSearch;
import com.develop.ss.search.QueryBean;
import com.meterware.httpunit.WebResponse;
import com.meterware.httpunit.WebLink;

import javax.servlet.ServletException;
import java.io.IOException;

/**
 * In-container testing. The same sample queries are black-box tested
 * with HTTPUnit in {@link com.develop.ss.httpunit.SearchTest }
 */
public class SiteSearchTest extends ServletTestCase {
  private SiteSearch searchServlet;

  public void setUp() throws ServletException {
    searchServlet = new SiteSearch();
    searchServlet.init(config);
  }
  public SiteSearchTest(String s) {
    super(s);
  }

  public void testEmptyRequest() throws ServletException, IOException {
    QueryBean bean = callServlet();
    assertEquals(0, bean.getResults().length);
  }

  private QueryBean callServlet() throws ServletException, IOException {
    searchServlet.doGet(request, response);
    QueryBean bean = (QueryBean) request.getAttribute("luceneQueryBean");
    assertNotNull(bean);
    return bean;
  }

  /**
   * This test duplicates functionality that already exists in the
   * HTTPUnit tests and is just here as a demonstration of client-side
   * result validation in Cactus.
   * @param response
   * @throws SAXException
   */
  public void endEmptyRequest(WebResponse response) throws SAXException {
    WebLink[] links = response.getLinks();
    assertEquals(0, links.length);
  }
  public void beginOneHitRequest(WebRequest request) {
    request.addParameter("query", "January");
  }
  public void testOneHitRequest() throws ServletException, IOException {
    QueryBean bean = callServlet();
    assertEquals(1, bean.getResults().length);
  }
  public void beginThreeHitRequest(WebRequest request) {
    request.addParameter("query", "spider");
  }
  public void testThreeHitRequest() throws ServletException, IOException {
    QueryBean bean = callServlet();
    assertEquals(3, bean.getResults().length);
  }
}