1   package uba.db.sql.language;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   
6   import junit.framework.TestCase;
7   import uba.db.testhelpers.TestUtils;
8   
9   /***
10   * Test de unidad para {@link uba.db.sql.language.SingleSelectionCriteria}.
11   * 
12   * @version $Revision: 1.6 $
13   */
14  public class SingleSelectionCriteriaTest extends TestCase {
15      private SingleSelectionCriteria singleSelectionCriteria;
16      private SingleSelectionCriteria sameSingleSelectionCriteria;
17      private SingleSelectionCriteria otherSelectionCriteria;
18  
19      /***
20       * @see junit.framework.TestCase#setUp()
21       */
22      protected void setUp() throws Exception {
23          super.setUp();
24          singleSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
25                  new TableName("A").column("c"), new TableName("B").column("c")));
26          sameSingleSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
27                  new TableName("A").column("c"), new TableName("B").column("c")));
28          otherSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
29                  new TableName("A").column("d"), new TableName("B").column("d")));
30      }
31  
32      /***
33       * Test de igualdad entre dos instancias.
34       */
35      public void testEquals() {
36          TestUtils.assertEqualsImplementation(singleSelectionCriteria,
37                                               sameSingleSelectionCriteria,
38                                               otherSelectionCriteria);
39      }
40      
41      /***
42       * Test: evaluar el criterio de selección.
43       */
44      public void testValueWith() throws Exception {
45          Map values = new HashMap();
46          values.put(new ColumnName("a"), "a value");
47          values.put(new ColumnName("b"), "b value");
48  
49          EvaluationContext context = new MockEvaluationContext(values);
50          
51          SingleSelectionCriteria criteria = 
52              new SingleSelectionCriteria(new EqualComparison(new ColumnName("a"), new ColumnName("b")));
53         
54          assertFalse(criteria.isTrueWith(context));
55          values.put(new ColumnName("b"), "a value");
56          assertTrue(criteria.isTrueWith(context));
57      }
58  }