/* * 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 java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import static junit.framework.TestCase.assertEquals; import static org.mockito.Mockito.*; @SuppressWarnings("unchecked") public class NewMatchersTest extends TestBase { private IMethods mock; @Before public void setUp() { mock = Mockito.mock(IMethods.class); } @Test public void shouldAllowAnyList() { when(mock.forList(anyListOf(String.class))).thenReturn("matched"); assertEquals("matched", mock.forList(Arrays.asList("x", "y"))); assertEquals(null, mock.forList(null)); verify(mock, times(1)).forList(anyListOf(String.class)); } @Test public void shouldAllowAnyCollection() { when(mock.forCollection(anyCollectionOf(String.class))).thenReturn("matched"); assertEquals("matched", mock.forCollection(Arrays.asList("x", "y"))); assertEquals(null, mock.forCollection(null)); verify(mock, times(1)).forCollection(anyCollectionOf(String.class)); } @Test public void shouldAllowAnyMap() { when(mock.forMap(anyMapOf(String.class, String.class))).thenReturn("matched"); assertEquals("matched", mock.forMap(new HashMap<String, String>())); assertEquals(null, mock.forMap(null)); verify(mock, times(1)).forMap(anyMapOf(String.class, String.class)); } @Test public void shouldAllowAnySet() { when(mock.forSet(anySetOf(String.class))).thenReturn("matched"); assertEquals("matched", mock.forSet(new HashSet<String>())); assertEquals(null, mock.forSet(null)); verify(mock, times(1)).forSet(anySetOf(String.class)); } @Test public void shouldAllowAnyIterable() { when(mock.forIterable(anyIterableOf(String.class))).thenReturn("matched"); assertEquals("matched", mock.forIterable(new HashSet<String>())); assertEquals(null, mock.forIterable(null)); verify(mock, times(1)).forIterable(anyIterableOf(String.class)); } }