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 package org.mockito.internal.matchers;
      6 
      7 import org.junit.Test;
      8 import org.mockitoutil.TestBase;
      9 
     10 import static org.junit.Assert.assertFalse;
     11 import static org.junit.Assert.assertTrue;
     12 import static org.mockito.internal.matchers.Equality.areEqual;
     13 
     14 public class EqualityTest extends TestBase {
     15 
     16     @Test
     17     public void shouldKnowIfObjectsAreEqual() throws Exception {
     18         int[] arr = new int[] {1, 2};
     19         assertTrue(areEqual(arr, arr));
     20         assertTrue(areEqual(new int[] {1, 2}, new int[] {1, 2}));
     21         assertTrue(areEqual(new Double[] {1.0}, new Double[] {1.0}));
     22         assertTrue(areEqual(new String[0], new String[0]));
     23         assertTrue(areEqual(new Object[10], new Object[10]));
     24         assertTrue(areEqual(new int[] {1}, new Integer[] {1}));
     25         assertTrue(areEqual(new Object[] {"1"}, new String[] {"1"}));
     26         Object badequals=new BadEquals();
     27         assertTrue(areEqual(badequals,badequals));
     28 
     29         assertFalse(areEqual(new Object[9], new Object[10]));
     30         assertFalse(areEqual(new int[] {1, 2}, new int[] {1}));
     31         assertFalse(areEqual(new int[] {1}, new double[] {1.0}));
     32     }
     33 
     34     private final class BadEquals {
     35         @Override
     36         public boolean equals(Object oth) {
     37             throw new RuntimeException();
     38         }
     39     }
     40 }
     41