1 package org.mockito.internal.session;
2 
3 import org.junit.After;
4 import org.junit.Test;
5 import org.mockito.StateMaster;
6 import org.mockito.exceptions.misusing.UnfinishedMockingSessionException;
7 import org.mockito.quality.Strictness;
8 import org.mockitoutil.ThrowableAssert;
9 
10 public class DefaultMockitoSessionBuilderTest {
11 
after()12     @After public void after() {
13         new StateMaster().clearMockitoListeners();
14     }
15 
creates_sessions()16     @Test public void creates_sessions() throws Exception {
17         //no configuration is legal
18         new DefaultMockitoSessionBuilder().startMocking().finishMocking();
19 
20         //passing null to configuration is legal, default value will be used
21         new DefaultMockitoSessionBuilder().initMocks(null).startMocking().finishMocking();
22         new DefaultMockitoSessionBuilder().initMocks(null).strictness(null).startMocking().finishMocking();
23         new DefaultMockitoSessionBuilder().strictness(null).startMocking().finishMocking();
24 
25         //happy path
26         new DefaultMockitoSessionBuilder().initMocks(this).startMocking().finishMocking();
27         new DefaultMockitoSessionBuilder().initMocks(new Object()).startMocking().finishMocking();
28         new DefaultMockitoSessionBuilder().strictness(Strictness.LENIENT).startMocking().finishMocking();
29     }
30 
requires_finish_mocking()31     @Test public void requires_finish_mocking() throws Exception {
32         new DefaultMockitoSessionBuilder().startMocking();
33 
34         ThrowableAssert.assertThat(new Runnable() {
35             public void run() {
36                 new DefaultMockitoSessionBuilder().startMocking();
37             }
38         }).throwsException(UnfinishedMockingSessionException.class);
39     }
40 }
41