1   package uba.db.sql.language;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import junit.framework.TestCase;
7   import uba.db.testhelpers.TestUtils;
8   
9   /***
10   * @version $Revision: 1.6 $
11   */
12  public class DisplayMultipleColumnsTest extends TestCase {
13      private DisplayMultipleColumns multipleColumns;
14      private DisplayMultipleColumns sameMultipleColumns;
15      private DisplayMultipleColumns otherMultipleColumns;
16      private DisplayOneColumn displayColumnC;
17      private DisplayOneColumn displayColumnE;
18      private DisplayOneColumn displayColumnD;
19  
20      /***
21       * @see junit.framework.TestCase#setUp()
22       */
23      protected void setUp() throws Exception {
24          super.setUp();
25  
26          displayColumnC = new DisplayOneColumn(new ColumnName("c"));
27          displayColumnE = new DisplayOneColumn(new ColumnName("e"));
28          multipleColumns = new DisplayMultipleColumns(displayColumnC, displayColumnE);
29  
30          sameMultipleColumns = new DisplayMultipleColumns(displayColumnC, displayColumnE);
31          displayColumnD = new DisplayOneColumn(new ColumnName("d"));
32          otherMultipleColumns = new DisplayMultipleColumns(displayColumnD, displayColumnE);
33      }
34  
35      /***
36       * Test de igualdad entre dos instancias.
37       */
38      public void testEquals() {
39          TestUtils.assertEqualsImplementation(multipleColumns,
40                                               sameMultipleColumns,
41                                               otherMultipleColumns);
42      }
43  
44      /***
45       * Test: agregar a multiples columnas.
46       */
47      public void testAppendToMultipleColumns() {
48          DisplayColumns result = multipleColumns.append(otherMultipleColumns);
49          List columns = new ArrayList();
50          columns.add(displayColumnC);
51          columns.add(displayColumnE);
52          columns.add(displayColumnD);
53          columns.add(displayColumnE);
54  
55          assertEquals(new DisplayMultipleColumns(columns), result);
56      }
57  
58      /***
59       * Test: agregar a una columna.
60       */
61      public void testAppendToOneColumn() {
62          DisplayColumns result = displayColumnC.append(otherMultipleColumns);
63          List columns = new ArrayList();
64          columns.add(displayColumnC);
65          columns.add(displayColumnD);
66          columns.add(displayColumnE);
67  
68          assertEquals(new DisplayMultipleColumns(columns), result);
69      }
70  
71      /***
72       * Test: agregar a un comodin de todas las columnas.
73       */
74      public void testAppendToAllColumns() {
75          DisplayColumns result = new DisplayAllColumns().append(otherMultipleColumns);
76          List columns = new ArrayList();
77          columns.add(new DisplayAllColumns());
78          columns.add(displayColumnD);
79          columns.add(displayColumnE);
80  
81          assertEquals(new DisplayMultipleColumns(columns), result);
82      }
83  }