@SuppressWarnings("deprecation") @Test public void shouldStubStringVarargs() { when(mock.withStringVarargsReturningString(1)).thenReturn("1"); when(mock.withStringVarargsReturningString(2, "1", "2", "3")).thenReturn("2"); RuntimeException expected = new RuntimeException(); stubVoid(mock).toThrow(expected).on().withStringVarargs(3, "1", "2", "3", "4"); assertEquals("1", mock.withStringVarargsReturningString(1)); assertEquals(null, mock.withStringVarargsReturningString(2)); assertEquals("2", mock.withStringVarargsReturningString(2, "1", "2", "3")); assertEquals(null, mock.withStringVarargsReturningString(2, "1", "2")); assertEquals(null, mock.withStringVarargsReturningString(2, "1", "2", "3", "4")); assertEquals(null, mock.withStringVarargsReturningString(2, "1", "2", "9999")); mock.withStringVarargs(3, "1", "2", "3", "9999"); mock.withStringVarargs(9999, "1", "2", "3", "4"); try { mock.withStringVarargs(3, "1", "2", "3", "4"); fail(); } catch (Exception e) { assertEquals(expected, e); } }
@Test // See bug #157 public void shouldMatchEasilyEmptyVararg() throws Exception { // when when(mock.foo(anyVararg())).thenReturn(-1); // then assertEquals(-1, mock.foo()); }
@Test public void shouldVerifyObjectVarargs() { mock.withObjectVarargs(1); mock.withObjectVarargs(2, "1", new ArrayList<Object>(), new Integer(1)); mock.withObjectVarargs(3, new Integer(1)); verify(mock).withObjectVarargs(1); verify(mock).withObjectVarargs(2, "1", new ArrayList<Object>(), new Integer(1)); try { verifyNoMoreInteractions(mock); fail(); } catch (NoInteractionsWanted e) { } }
@Test public void shouldVerifyStringVarargs() { mock.withStringVarargs(1); mock.withStringVarargs(2, "1", "2", "3"); mock.withStringVarargs(3, "1", "2", "3", "4"); verify(mock).withStringVarargs(1); verify(mock).withStringVarargs(2, "1", "2", "3"); try { verify(mock).withStringVarargs(2, "1", "2", "79", "4"); fail(); } catch (ArgumentsAreDifferent e) { } }
@Test public void shouldVerifyBooleanVarargs() { mock.withBooleanVarargs(1); mock.withBooleanVarargs(2, true, false, true); mock.withBooleanVarargs(3, true, true, true); verify(mock).withBooleanVarargs(1); verify(mock).withBooleanVarargs(2, true, false, true); try { verify(mock).withBooleanVarargs(3, true, true, true, true); fail(); } catch (ArgumentsAreDifferent e) { } }
@Test public void shouldStubBooleanVarargs() { when(mock.withBooleanVarargs(1)).thenReturn(true); when(mock.withBooleanVarargs(1, true, false)).thenReturn(true); assertEquals(true, mock.withBooleanVarargs(1)); assertEquals(false, mock.withBooleanVarargs(9999)); assertEquals(true, mock.withBooleanVarargs(1, true, false)); assertEquals(false, mock.withBooleanVarargs(1, true, false, true)); assertEquals(false, mock.withBooleanVarargs(2, true, false)); assertEquals(false, mock.withBooleanVarargs(1, true)); assertEquals(false, mock.withBooleanVarargs(1, false, false)); }