Home | History | Annotate | Download | only in annotation
      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 org.junit.Before;
      8 import org.junit.Test;
      9 import org.mockito.MockitoAnnotations;
     10 import org.mockito.Spy;
     11 import org.mockito.internal.util.MockUtil;
     12 import org.mockitoutil.TestBase;
     13 
     14 import java.util.LinkedList;
     15 import java.util.List;
     16 
     17 import static org.junit.Assert.assertTrue;
     18 import static org.mockito.internal.util.MockUtil.isMock;
     19 
     20 @SuppressWarnings("unchecked")
     21 public class SpyAnnotationInitializedInBaseClassTest extends TestBase {
     22 
     23     class BaseClass {
     24 
     25         @Spy
     26         List list = new LinkedList();
     27     }
     28 
     29     class SubClass extends BaseClass {
     30 
     31     }
     32 
     33     @Test
     34     public void shouldInitSpiesInBaseClass() throws Exception {
     35         //given
     36         SubClass subClass = new SubClass();
     37         //when
     38         MockitoAnnotations.initMocks(subClass);
     39         //then
     40         assertTrue(MockUtil.isMock(subClass.list));
     41     }
     42 
     43     @Before
     44     @Override
     45     public void init() {
     46         //we need to get rid of parent implementation this time
     47     }
     48 
     49     @Before
     50     public void before() {
     51         MockitoAnnotations.initMocks(this);
     52     }
     53 
     54     @Spy
     55     List spyInBaseclass = new LinkedList();
     56 
     57     public static class SubTest extends SpyAnnotationInitializedInBaseClassTest {
     58 
     59         @Spy
     60         List spyInSubclass = new LinkedList();
     61 
     62         @Test
     63         public void shouldInitSpiesInHierarchy() throws Exception {
     64             assertTrue(isMock(spyInSubclass));
     65             assertTrue(isMock(spyInBaseclass));
     66         }
     67     }
     68 }
     69