12637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin/* 22637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * Copyright (c) 2007 Mockito contributors 32637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * This program is made available under the terms of the MIT License. 42637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin */ 52637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 62637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpackage org.mockito.internal.matchers; 72637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.junit.Test; 92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockitoutil.TestBase; 102637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 112637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static junit.framework.TestCase.*; 122637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 132637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 142637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpublic class EqualsTest extends TestBase { 152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 162637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 172637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldBeEqual() { 182637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals(new Equals(null), new Equals(null)); 192637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals(new Equals(new Integer(2)), new Equals(new Integer(2))); 202637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(new Equals(null).equals(null)); 212637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(new Equals(null).equals("Test")); 222637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals(1, new Equals(null).hashCode()); 232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 242637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 252637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 262637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldArraysBeEqual() { 272637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertTrue(new Equals(new int[] {1, 2}).matches(new int[] {1, 2})); 282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(new Equals(new Object[] {"1"}).matches(new Object[] {"1.0"})); 292637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 302637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 312637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 322637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldDescribeWithExtraTypeInfo() throws Exception { 332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals(100).toStringWithType(); 342637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 352637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("(Integer) 100", descStr); 362637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 382637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 392637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldDescribeWithExtraTypeInfoOfLong() throws Exception { 402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals(100L).toStringWithType(); 412637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("(Long) 100L", descStr); 432637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 442637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 452637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 462637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldDescribeWithTypeOfString() throws Exception { 472637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals("x").toStringWithType(); 482637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 492637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("(String) \"x\"", descStr); 502637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 512637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 522637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 532637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldAppendQuotingForString() { 542637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals("str").toString(); 552637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 562637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("\"str\"", descStr); 572637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 582637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 592637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 602637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldAppendQuotingForChar() { 612637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals('s').toString(); 622637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 632637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("'s'", descStr); 642637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 652637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 662637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 672637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldDescribeUsingToString() { 682637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals(100).toString(); 692637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 702637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("100", descStr); 712637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 722637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 732637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 742637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldDescribeNull() { 752637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String descStr = new Equals(null).toString(); 762637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 772637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertEquals("null", descStr); 782637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 792637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 802637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 812637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldMatchTypes() throws Exception { 822637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //when 832637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin ContainsExtraTypeInfo equals = new Equals(10); 842637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 852637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //then 862637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertTrue(equals.typeMatches(10)); 872637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(equals.typeMatches(10L)); 882637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 892637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 902637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 912637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldMatchTypesSafelyWhenActualIsNull() throws Exception { 922637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //when 932637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin ContainsExtraTypeInfo equals = new Equals(null); 942637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 952637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //then 962637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(equals.typeMatches(10)); 972637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 982637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 992637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 1002637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldMatchTypesSafelyWhenGivenIsNull() throws Exception { 1012637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //when 1022637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin ContainsExtraTypeInfo equals = new Equals(10); 1032637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 1042637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //then 1052637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin assertFalse(equals.typeMatches(null)); 1062637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 1072637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin} 108