/* * 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())); } }