Jira addon Unit Test fails with java.lang.NoClassDefFoundError: com/atlassian/jira/issue/IssueImpl

Lukas Kotyza June 15, 2022

Hi, so I've been trying to learn more about unit tests for my jira addon but I hit wall pretty early. I have simple Unit test which mocks IssueManager with one issue. That looks fine but the problem is when I try to get the issue specifically with issuekey

@RunWith(MockitoJUnitRunner.class)
public class JiraServiceUnitTest {

@Before
public void setUp() throws Exception {
MockIssueManager issueManager = new MockIssueManager();
MockIssue issue = new MockIssue(10000, "FD-1001");
issueManager.addIssue(issue);

MockComponentWorker componentWorker = new MockComponentWorker();
componentWorker.addMock(IssueManager.class, issueManager);
componentWorker.init();
}

@Test
// OK
public void testIssueManager() {
IssueManager issueManager = ComponentAccessor.getIssueManager();
assertNotNull(issueManager);
}

@Test
// OK
public void testIssueSearchById() {
IssueManager issueManager = ComponentAccessor.getIssueManager();
Issue issue = issueManager.getIssueObject(10000L);
assertNotNull(issue);
}

@Test
// ERROR
public void testIssueSearchByKey() {
IssueManager issueManager = ComponentAccessor.getIssueManager();
Issue issue = issueManager.getIssueObject("FD-1001");
assertNotNull(issue);
}
}

From research I did I learned that there might be a problem with jira java api loading for tests that has something to do with osgi and that it could be solved by adding

<bundle-instructions>
<Import-Package>com.atlassian.jira.issue;resolution:="optional"</Import-Package>
</bundle-instructions>

to atlassian-plugin.xml. But this didn't work for me. The question is what am I doing wrong?

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events