• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2007 Mockito contributors
3  * This program is made available under the terms of the MIT License.
4  */
5 package org.mockito.internal.verification;
6 
7 import org.junit.Test;
8 import org.mockito.exceptions.base.MockitoAssertionError;
9 import org.mockito.internal.invocation.InvocationBuilder;
10 import org.mockito.internal.invocation.InvocationMatcher;
11 import org.mockito.invocation.MatchableInvocation;
12 import org.mockito.internal.verification.api.VerificationData;
13 import org.mockito.invocation.Invocation;
14 
15 import java.util.Arrays;
16 import java.util.List;
17 
18 import static org.junit.Assert.*;
19 
20 public class OnlyTest {
21 
22     Only only = new Only();
23 
24     public class VerificationDataStub implements VerificationData {
25         private final Invocation invocation;
26         private final InvocationMatcher wanted;
27 
VerificationDataStub(InvocationMatcher wanted, Invocation invocation)28         public VerificationDataStub(InvocationMatcher wanted, Invocation invocation) {
29             this.invocation = invocation;
30             this.wanted = wanted;
31         }
32 
getAllInvocations()33         public List<Invocation> getAllInvocations() {
34             return Arrays.asList(invocation);
35         }
36 
37         @Override
getTarget()38         public MatchableInvocation getTarget() {
39             return wanted;
40         }
41 
getWanted()42         public InvocationMatcher getWanted() {
43             return wanted;
44         }
45     }
46 
47     @Test
shouldMarkAsVerified()48     public void shouldMarkAsVerified() {
49         //given
50         Invocation invocation = new InvocationBuilder().toInvocation();
51         assertFalse(invocation.isVerified());
52 
53         //when
54         only.verify(new VerificationDataStub(new InvocationMatcher(invocation), invocation));
55 
56         //then
57         assertTrue(invocation.isVerified());
58     }
59 
60     @Test
shouldNotMarkAsVerifiedWhenAssertionFailed()61     public void shouldNotMarkAsVerifiedWhenAssertionFailed() {
62         //given
63         Invocation invocation = new InvocationBuilder().toInvocation();
64         assertFalse(invocation.isVerified());
65 
66         //when
67         try {
68             only.verify(new VerificationDataStub(new InvocationBuilder().toInvocationMatcher(), invocation));
69             fail();
70         } catch (MockitoAssertionError e) {}
71 
72         //then
73         assertFalse(invocation.isVerified());
74     }
75 }
76