1   package org.displaytag.jsptests;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.displaytag.test.DisplaytagCase;
5   import org.displaytag.test.KnownValue;
6   
7   import com.meterware.httpunit.GetMethodWebRequest;
8   import com.meterware.httpunit.WebRequest;
9   import com.meterware.httpunit.WebResponse;
10  import com.meterware.httpunit.WebTable;
11  
12  
13  /***
14   * Tests for different kind of "data sources".
15   * @author Fabrizio Giustina
16   * @version $Revision: 1.1 $ ($Author: fgiust $)
17   */
18  public class DataSourceMapAutoColumnTest extends DisplaytagCase
19  {
20  
21      /***
22       * @see org.displaytag.test.DisplaytagCase#getJspName()
23       */
24      public String getJspName()
25      {
26          return "map_autocolumn.jsp";
27      }
28  
29      /***
30       * Test with a Map[] with automatically discoverd column.
31       * @param jspName jsp name, with full path
32       * @throws Exception any axception thrown during test.
33       */
34      public void doTest(String jspName) throws Exception
35      {
36  
37          WebRequest request = new GetMethodWebRequest(jspName);
38  
39          WebResponse response = runner.getResponse(request);
40  
41          if (log.isDebugEnabled())
42          {
43              log.debug("RESPONSE: " + response.getText());
44          }
45  
46          WebTable[] tables = response.getTables();
47  
48          assertEquals("Expected one table in result.", 1, tables.length);
49  
50          assertEquals("Bad number of generated columns.", 3, tables[0].getColumnCount());
51  
52          assertEquals("Bad value in column header.", //
53              StringUtils.capitalize(KnownValue.ANT), tables[0].getCellAsText(0, 0));
54          assertEquals("Bad value in column header.", //
55              StringUtils.capitalize(KnownValue.BEE), tables[0].getCellAsText(0, 1));
56          assertEquals("Bad value in column header.", //
57              "camel title", tables[0].getCellAsText(0, 2)); // localized text
58  
59          assertEquals("Bad value in column content.", KnownValue.ANT, tables[0].getCellAsText(1, 0));
60          assertEquals("Bad value in column content.", KnownValue.BEE, tables[0].getCellAsText(1, 1));
61          assertEquals("Bad value in column content.", KnownValue.CAMEL, tables[0].getCellAsText(1, 2));
62      }
63  }