• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2017 Mockito contributors
3  * This program is made available under the terms of the MIT License.
4  */
5 package org.mockitousage.serialization;
6 
7 import static org.assertj.core.api.Assertions.assertThat;
8 import static org.mockito.Mockito.*;
9 import static org.mockitoutil.SimpleSerializationUtil.serializeAndBack;
10 
11 import java.io.Serializable;
12 
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Mock;
16 import org.mockito.junit.MockitoJUnitRunner;
17 
18 @RunWith(MockitoJUnitRunner.StrictStubs.class)
19 public class StrictStubsSerializableTest {
20 
21     @Mock(serializable = true)
22     private SampleClass sampleClass;
23 
24     @Test
should_serialize_and_deserialize_mock_created_with_serializable_and_strict_stubs()25     public void should_serialize_and_deserialize_mock_created_with_serializable_and_strict_stubs()
26             throws Exception {
27         // given
28         when(sampleClass.isFalse()).thenReturn(true);
29 
30         // when
31         SampleClass deserializedSample = serializeAndBack(sampleClass);
32         // to satisfy strict stubbing
33         deserializedSample.isFalse();
34         verify(deserializedSample).isFalse();
35         verify(sampleClass, never()).isFalse();
36 
37         // then
38         assertThat(deserializedSample.isFalse()).isEqualTo(true);
39         assertThat(sampleClass.isFalse()).isEqualTo(true);
40     }
41 
42     static class SampleClass implements Serializable {
43 
isFalse()44         boolean isFalse() {
45             return false;
46         }
47     }
48 }
49