com.atlassian.jira.junit.rules
Class MockComponentContainer
java.lang.Object
org.junit.rules.TestWatcher
com.atlassian.jira.junit.rules.MockComponentContainer
- All Implemented Interfaces:
- org.junit.rules.TestRule
public class MockComponentContainer
- extends org.junit.rules.TestWatcher
JUnit @Rule
that allows for providing mock JIRA components accessed in
production code via ComponentAccessor
static methods.
Example usage (in your test classes):
- using annotations:
@Rule public MockComponentContainer container = new MockComponentContainer(this);
@Mock
@AvailableInContainer
private ServiceOne mockServiceOne;
@Mock
@AvailableInContainer(interfaceClass=ServiceTwo.class) // useful if mockServiceTwo would implement more interfaces
private ServiceTwo mockServiceTwo;
@Test
public void testCodeThatUsesComponentAccessor()
{
assertSame(mockServiceOne, ComponentAccessor.getComponent(ServiceOne.class));
assertSame(mockServiceTwo, ComponentAccessor.getComponent(ServiceTwo.class));
// etc.
}
- or adding to the container manually:
@Rule public MockComponentContainer container = new MockComponentContainer(this);
@Before
public void addMocks()
{
container.addMock(ServiceOne.class, mockServiceOne)
.addMock(ServiceTwo.class, mockServiceTwo);
}
@Test
public void testCodeThatUsesComponentAccessor()
{
assertSame(mockServiceOne, ComponentAccessor.getComponent(ServiceOne.class));
// etc.
}
- Since:
- 5.1
Methods inherited from class org.junit.rules.TestWatcher |
apply, failed, succeeded |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MockComponentContainer
public MockComponentContainer(Object test)
addMockComponent
public <I,C extends I> MockComponentContainer addMockComponent(Class<I> componentInterface,
C mockComponentImplementation)
addMock
public <I,C extends I> MockComponentContainer addMock(Class<I> componentInterface,
C mockComponentImplementation)
starting
protected void starting(org.junit.runner.Description description)
- Overrides:
starting
in class org.junit.rules.TestWatcher
finished
protected void finished(org.junit.runner.Description description)
- Overrides:
finished
in class org.junit.rules.TestWatcher
getMockWorker
public MockComponentWorker getMockWorker()
Copyright © 2002-2014 Atlassian. All Rights Reserved.