@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);
  }