blob: 97052ba6faf3953f01aae4c2d0df4da68a8d87b7 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.bugs;
import org.junit.Test;
import org.mockitoutil.TestBase;
import java.util.Date;
import java.util.Set;
import java.util.TreeSet;
import static junit.framework.TestCase.assertEquals;
import static org.mockito.Mockito.*;
//see issue 184
public class ShouldMocksCompareToBeConsistentWithEqualsTest extends TestBase {
@Test
public void should_compare_to_be_consistent_with_equals() {
//given
Date today = mock(Date.class);
Date tomorrow = mock(Date.class);
//when
Set<Date> set = new TreeSet<Date>();
set.add(today);
set.add(tomorrow);
//then
assertEquals(2, set.size());
}
@Test
public void should_compare_to_be_consistent_with_equals_when_comparing_the_same_reference() {
//given
Date today = mock(Date.class);
//when
Set<Date> set = new TreeSet<Date>();
set.add(today);
set.add(today);
//then
assertEquals(1, set.size());
}
@Test
public void should_allow_stubbing_and_verifying_compare_to() {
//given
Date mock = mock(Date.class);
when(mock.compareTo(any(Date.class))).thenReturn(10);
//when
mock.compareTo(new Date());
//then
assertEquals(10, mock.compareTo(new Date()));
verify(mock, atLeastOnce()).compareTo(any(Date.class));
}
@Test
public void should_reset_not_remove_default_stubbing() {
//given
Date mock = mock(Date.class);
reset(mock);
//then
assertEquals(1, mock.compareTo(new Date()));
}
}