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