| /* |
| * Copyright (c) 2007 Mockito contributors |
| * This program is made available under the terms of the MIT License. |
| */ |
| |
| package org.mockitousage.annotation; |
| |
| import org.junit.After; |
| import org.junit.Test; |
| import org.mockito.InjectMocks; |
| import org.mockito.Mock; |
| import org.mockito.MockitoAnnotations; |
| import org.mockito.configuration.AnnotationEngine; |
| import org.mockito.configuration.DefaultMockitoConfiguration; |
| import org.mockito.internal.configuration.ConfigurationAccess; |
| import org.mockito.internal.configuration.IndependentAnnotationEngine; |
| import org.mockitoutil.TestBase; |
| |
| import static junit.framework.TestCase.*; |
| |
| public class DeprecatedAnnotationEngineApiTest extends TestBase { |
| |
| @After |
| public void goBackToDefaultConfiguration() { |
| ConfigurationAccess.getConfig().overrideAnnotationEngine(null); |
| } |
| |
| class SimpleTestCase { |
| @InjectMocks Tested tested = new Tested(); |
| @Mock Dependency mock; |
| } |
| |
| class Tested { |
| Dependency dependency; |
| public void setDependency(Dependency dependency) { |
| this.dependency = dependency; |
| } |
| } |
| |
| class Dependency {} |
| |
| @Test |
| public void shouldInjectMocksIfThereIsNoUserDefinedEngine() throws Exception { |
| //given |
| AnnotationEngine defaultEngine = new DefaultMockitoConfiguration().getAnnotationEngine(); |
| ConfigurationAccess.getConfig().overrideAnnotationEngine(defaultEngine); |
| SimpleTestCase test = new SimpleTestCase(); |
| |
| //when |
| MockitoAnnotations.initMocks(test); |
| |
| //then |
| assertNotNull(test.mock); |
| assertNotNull(test.tested.dependency); |
| assertSame(test.mock, test.tested.dependency); |
| } |
| |
| @Test |
| public void shouldRespectUsersEngine() throws Exception { |
| //given |
| AnnotationEngine customizedEngine = new IndependentAnnotationEngine() { /**/ }; |
| ConfigurationAccess.getConfig().overrideAnnotationEngine(customizedEngine); |
| SimpleTestCase test = new SimpleTestCase(); |
| |
| //when |
| MockitoAnnotations.initMocks(test); |
| |
| //then |
| assertNotNull(test.mock); |
| assertNull(test.tested.dependency); |
| } |
| } |