/
MockedStatic.java
78 lines (64 loc) · 2.19 KB
/
MockedStatic.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito;
import org.mockito.stubbing.OngoingStubbing;
import org.mockito.verification.VerificationMode;
import static org.mockito.Mockito.*;
/**
* Represents an active mock of a type's static methods. The mocking only affects the thread
* on which this static mock was created and it is not safe to use this object from another
* thread. The static mock is released when this object's {@link MockedStatic#close()} method
* is invoked. If this object is never closed, the static mock will remain active on the
* initiating thread. It is therefore recommended to create this object within a try-with-resources
* statement unless when managed explicitly, for example by using a JUnit rule or extension.
* <p>
* If the {@link Mock} annotation is used on fields or method parameters of this type, a static mock
* is created instead of a regular mock. The static mock is activated and released upon completing any
* relevant test.
*
* @param <T> The type being mocked.
*/
@Incubating
public interface MockedStatic<T> extends AutoCloseable {
/**
* See {@link Mockito#when(Object)}.
*/
<S> OngoingStubbing<S> when(Verification verification);
/**
* See {@link Mockito#verify(Object)}.
*/
default void verify(Verification verification) {
verify(times(1), verification);
}
/**
* See {@link Mockito#verify(Object, VerificationMode)}.
*/
void verify(VerificationMode mode, Verification verification);
/**
* See {@link Mockito#reset(Object[])}.
*/
void reset();
/**
* See {@link Mockito#clearInvocations(Object[])}.
*/
void clearInvocations();
/**
* {@link Mockito#verifyNoMoreInteractions(Object...)}.
*/
void verifyNoMoreInteractions();
/**
* See {@link Mockito#verifyNoInteractions(Object...)}.
*/
void verifyNoInteractions();
@Override
void close();
/**
* Releases this static mock and is non-operational if already released.
*/
void closeOnDemand();
interface Verification {
void apply() throws Throwable;
}
}