1   package com.atlassian.pageobjects.elements.test.query;
2   
3   import com.atlassian.pageobjects.elements.query.Conditions;
4   import com.atlassian.pageobjects.elements.query.TimedCondition;
5   import com.atlassian.pageobjects.elements.query.TimedQuery;
6   import org.junit.Test;
7   
8   import static com.atlassian.pageobjects.elements.mock.MockCondition.FALSE;
9   import static com.atlassian.pageobjects.elements.mock.MockCondition.TRUE;
10  import static org.junit.Assert.assertFalse;
11  import static org.junit.Assert.assertTrue;
12  
13  /**
14   * Test case for {@link com.atlassian.pageobjects.elements.query.Conditions}.
15   */
16  @SuppressWarnings("unchecked")
17  public class TestConditions
18  {
19      @Test
20      public void testNot()
21      {
22          TimedQuery<Boolean> notFalse = Conditions.not(FALSE);
23          assertTrue(notFalse.now());
24          TimedQuery<Boolean> notTrue = Conditions.not(TRUE);
25          assertFalse(notTrue.now());
26      }
27  
28      @Test
29      public void andTrueOnlyShouldResultInTrue()
30      {
31          TimedCondition and = Conditions.and(TRUE, TRUE, TRUE);
32          assertTrue(and.now());
33      }
34  
35      @Test
36      public void trueAndFalseShouldResultInFalse()
37      {
38          TimedCondition and = Conditions.and(TRUE, FALSE, TRUE, TRUE);
39          assertFalse(and.now());
40      }
41  
42      @Test
43      public void trueOrFalseShouldResultInTrue()
44      {
45          TimedCondition or = Conditions.or(FALSE, FALSE, TRUE, FALSE);
46          assertTrue(or.now());
47      }
48  
49      @Test
50      public void orFalseOnlyShouldResultInFalse()
51      {
52          TimedCondition or = Conditions.or(FALSE, FALSE, FALSE, FALSE);
53          assertFalse(or.now());
54      }
55  }