1 /* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockitousage.annotation; 6 7 import static org.junit.Assert.assertNotNull; 8 import static org.junit.Assert.assertSame; 9 import static org.mockito.Mockito.mock; 10 import static org.mockito.Mockito.spy; 11 12 import org.junit.Test; 13 import org.junit.runner.RunWith; 14 import org.mockito.InjectMocks; 15 import org.mockito.junit.MockitoJUnitRunner; 16 17 @RunWith(MockitoJUnitRunner.class) 18 public class InjectionOfInlinedMockDeclarationTest { 19 20 @InjectMocks private Receiver receiver; 21 @InjectMocks private Receiver spiedReceiver = spy(new Receiver()); 22 23 private Antenna oldAntenna = mock(Antenna.class); 24 private Antenna satelliteAntenna = mock(Antenna.class); 25 private Antenna antenna = mock(Antenna.class, "dvbtAntenna"); 26 private Tuner tuner = spy(new Tuner()); 27 28 @Test mock_declared_fields_shall_be_injected_too()29 public void mock_declared_fields_shall_be_injected_too() throws Exception { 30 assertNotNull(receiver.oldAntenna); 31 assertNotNull(receiver.satelliteAntenna); 32 assertNotNull(receiver.dvbtAntenna); 33 assertNotNull(receiver.tuner); 34 } 35 36 @Test unnamed_mocks_should_be_resolved_withe_their_field_names()37 public void unnamed_mocks_should_be_resolved_withe_their_field_names() throws Exception { 38 assertSame(oldAntenna, receiver.oldAntenna); 39 assertSame(satelliteAntenna, receiver.satelliteAntenna); 40 } 41 42 @Test named_mocks_should_be_resolved_with_their_name()43 public void named_mocks_should_be_resolved_with_their_name() throws Exception { 44 assertSame(antenna, receiver.dvbtAntenna); 45 } 46 47 @Test inject_mocks_even_in_declared_spy()48 public void inject_mocks_even_in_declared_spy() throws Exception { 49 assertNotNull(spiedReceiver.oldAntenna); 50 assertNotNull(spiedReceiver.tuner); 51 } 52 53 // note that static class is not private !! 54 static class Receiver { 55 Antenna oldAntenna; 56 Antenna satelliteAntenna; 57 Antenna dvbtAntenna; 58 Tuner tuner; 59 tune()60 public boolean tune() { 61 return true; 62 } 63 } 64 65 private static class Antenna {} 66 67 private static class Tuner {} 68 } 69