@Test public void testFirstChildIsPackage() throws Exception { final PsiJavaFile psiJavaFile = mock(PsiJavaFile.class); final PsiClass toImport = mock(PsiClass.class); final PsiImportStatement psiImportStatement = mock(PsiImportStatement.class); final PsiImportList psiImportList = mock(PsiImportList.class); final RunnableHolder writeActionHolder = getWriteActionHolder(); final PsiPackageStatement psiPackageStatement = mock(PsiPackageStatement.class); when(psiJavaFile.getProject()).thenReturn(project); when(psiImportStatement.getParent()).thenReturn(psiImportList); when(psiJavaFile.getPackageStatement()).thenReturn(psiPackageStatement); when(psiJavaFile.getFirstChild()).thenReturn(psiPackageStatement); when(psiElementFactory.createImportStatement(toImport)).thenReturn(psiImportStatement); addImportService.addImportStatement(psiJavaFile, toImport); assertNotNull(writeActionHolder.getRunnable()); verify(psiJavaFile, never()).addAfter(any(), any()); writeActionHolder.getRunnable().run(); verify(psiJavaFile).addAfter(psiPackageStatement, psiImportList); }