/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.matchers;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockitousage.IMethods;
import org.mockitoutil.TestBase;
import static junit.framework.TestCase.assertEquals;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.when;
@SuppressWarnings("unchecked")
public class AnyXMatchersAcceptNullsTest extends TestBase {
private IMethods mock;
@Before
public void setUp() {
mock = Mockito.mock(IMethods.class);
}
@Test
public void shouldAcceptNullsInAnyMatcher() {
when(mock.oneArg((Object) any())).thenReturn("matched");
assertEquals(null, mock.forObject(null));
}
@Test
public void shouldAcceptNullsInAnyObjectMatcher() {
when(mock.oneArg((Object) anyObject())).thenReturn("matched");
assertEquals(null, mock.forObject(null));
}
@Test
public void shouldNotAcceptNullInAnyXMatchers() {
when(mock.oneArg(anyString())).thenReturn("0");
when(mock.forList(anyListOf(String.class))).thenReturn("1");
when(mock.forMap(anyMapOf(String.class, String.class))).thenReturn("2");
when(mock.forCollection(anyCollectionOf(String.class))).thenReturn("3");
when(mock.forSet(anySetOf(String.class))).thenReturn("4");
assertEquals(null, mock.oneArg((Object) null));
assertEquals(null, mock.oneArg((String) null));
assertEquals(null, mock.forList(null));
assertEquals(null, mock.forMap(null));
assertEquals(null, mock.forCollection(null));
assertEquals(null, mock.forSet(null));
}
@Test
public void shouldNotAcceptNullInAllAnyPrimitiveWrapperMatchers() {
when(mock.forInteger(anyInt())).thenReturn("0");
when(mock.forCharacter(anyChar())).thenReturn("1");
when(mock.forShort(anyShort())).thenReturn("2");
when(mock.forByte(anyByte())).thenReturn("3");
when(mock.forBoolean(anyBoolean())).thenReturn("4");
when(mock.forLong(anyLong())).thenReturn("5");
when(mock.forFloat(anyFloat())).thenReturn("6");
when(mock.forDouble(anyDouble())).thenReturn("7");
assertEquals(null, mock.forInteger(null));
assertEquals(null, mock.forCharacter(null));
assertEquals(null, mock.forShort(null));
assertEquals(null, mock.forByte(null));
assertEquals(null, mock.forBoolean(null));
assertEquals(null, mock.forLong(null));
assertEquals(null, mock.forFloat(null));
assertEquals(null, mock.forDouble(null));
}
}