12637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin/* 22637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * Copyright (c) 2007 Mockito contributors 32637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * This program is made available under the terms of the MIT License. 42637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin */ 52637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 62637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpackage org.mockitousage.verification; 72637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.junit.Test; 92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockito.Mock; 102637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockito.exceptions.base.MockitoAssertionError; 112637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockitoutil.TestBase; 122637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 132637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport java.util.List; 142637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static junit.framework.TestCase.fail; 162637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static org.mockito.Mockito.*; 172637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 182637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpublic class AtLeastXVerificationTest extends TestBase { 192637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 202637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Mock private List<String> mock; 212637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 222637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldVerifyAtLeastXTimes() throws Exception { 242637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //when 252637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.clear(); 262637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.clear(); 272637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.clear(); 282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 292637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //then 302637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verify(mock, atLeast(2)).clear(); 312637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 322637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 342637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldFailVerifiationAtLeastXTimes() throws Exception { 352637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.add("one"); 362637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verify(mock, atLeast(1)).add(anyString()); 372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 382637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin try { 392637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verify(mock, atLeast(2)).add(anyString()); 402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin fail(); 412637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } catch (MockitoAssertionError e) {} 422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 432637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 442637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Test 452637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public void shouldAllowAtLeastZeroForTheSakeOfVerifyNoMoreInteractionsSometimes() throws Exception { 462637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //when 472637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.add("one"); 482637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin mock.clear(); 492637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 502637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //then 512637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verify(mock, atLeast(0)).add("one"); 522637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verify(mock, atLeast(0)).clear(); 532637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 542637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin verifyNoMoreInteractions(mock); 552637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 562637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin} 57