Home | History | Annotate | Download | only in matchers
      1 /*
      2  * Copyright (c) 2007 Mockito contributors
      3  * This program is made available under the terms of the MIT License.
      4  */
      5 
      6 package org.mockito.internal.matchers;
      7 
      8 import org.junit.Test;
      9 import org.mockitoutil.TestBase;
     10 
     11 import static org.junit.Assert.*;
     12 
     13 
     14 public class EqualsTest extends TestBase {
     15 
     16     @Test
     17     public void shouldBeEqual() {
     18         assertEquals(new Equals(null), new Equals(null));
     19         assertEquals(new Equals(new Integer(2)), new Equals(new Integer(2)));
     20         assertFalse(new Equals(null).equals(null));
     21         assertFalse(new Equals(null).equals("Test"));
     22         assertEquals(1, new Equals(null).hashCode());
     23     }
     24 
     25     @Test
     26     public void shouldArraysBeEqual() {
     27         assertTrue(new Equals(new int[] {1, 2}).matches(new int[] {1, 2}));
     28         assertFalse(new Equals(new Object[] {"1"}).matches(new Object[] {"1.0"}));
     29     }
     30 
     31     @Test
     32     public void shouldDescribeWithExtraTypeInfo() throws Exception {
     33         String descStr = new Equals(100).toStringWithType();
     34 
     35         assertEquals("(Integer) 100", descStr);
     36     }
     37 
     38     @Test
     39     public void shouldDescribeWithExtraTypeInfoOfLong() throws Exception {
     40         String descStr = new Equals(100L).toStringWithType();
     41 
     42         assertEquals("(Long) 100L", descStr);
     43     }
     44 
     45     @Test
     46     public void shouldDescribeWithTypeOfString() throws Exception {
     47         String descStr = new Equals("x").toStringWithType();
     48 
     49         assertEquals("(String) \"x\"", descStr);
     50     }
     51 
     52     @Test
     53     public void shouldAppendQuotingForString() {
     54         String descStr = new Equals("str").toString();
     55 
     56         assertEquals("\"str\"", descStr);
     57     }
     58 
     59     @Test
     60     public void shouldAppendQuotingForChar() {
     61         String descStr = new Equals('s').toString();
     62 
     63         assertEquals("'s'", descStr);
     64     }
     65 
     66     @Test
     67     public void shouldDescribeUsingToString() {
     68         String descStr = new Equals(100).toString();
     69 
     70         assertEquals("100", descStr);
     71     }
     72 
     73     @Test
     74     public void shouldDescribeNull() {
     75         String descStr = new Equals(null).toString();
     76 
     77         assertEquals("null", descStr);
     78     }
     79 
     80     @Test
     81     public void shouldMatchTypes() throws Exception {
     82         //when
     83         ContainsExtraTypeInfo equals = new Equals(10);
     84 
     85         //then
     86         assertTrue(equals.typeMatches(10));
     87         assertFalse(equals.typeMatches(10L));
     88     }
     89 
     90     @Test
     91     public void shouldMatchTypesSafelyWhenActualIsNull() throws Exception {
     92         //when
     93         ContainsExtraTypeInfo equals = new Equals(null);
     94 
     95         //then
     96         assertFalse(equals.typeMatches(10));
     97     }
     98 
     99     @Test
    100     public void shouldMatchTypesSafelyWhenGivenIsNull() throws Exception {
    101         //when
    102         ContainsExtraTypeInfo equals = new Equals(10);
    103 
    104         //then
    105         assertFalse(equals.typeMatches(null));
    106     }
    107 }
    108