public class MockComponentContainer
extends org.junit.rules.TestWatcher
@Rule
that allows for providing mock JIRA components accessed in
production code via ComponentAccessor
static methods.
Example usage (in your test classes):
@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.
}
@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.
}
Constructor and Description |
---|
MockComponentContainer(Object test) |
Modifier and Type | Method and Description |
---|---|
<I,C extends I> |
addMock(Class<I> componentInterface,
C mockComponentImplementation) |
<I,C extends I> |
addMockComponent(Class<I> componentInterface,
C mockComponentImplementation) |
protected void |
finished(org.junit.runner.Description description) |
MockComponentWorker |
getMockWorker() |
protected void |
starting(org.junit.runner.Description description) |
public MockComponentContainer(Object test)
public <I,C extends I> MockComponentContainer addMockComponent(Class<I> componentInterface, C mockComponentImplementation)
public <I,C extends I> MockComponentContainer addMock(Class<I> componentInterface, C mockComponentImplementation)
protected void starting(org.junit.runner.Description description)
starting
in class org.junit.rules.TestWatcher
protected void finished(org.junit.runner.Description description)
finished
in class org.junit.rules.TestWatcher
public MockComponentWorker getMockWorker()
Copyright © 2002-2017 Atlassian. All Rights Reserved.
View cookie preferences