@Test
public void testInvalidLocalDependency() throws MavenEmbedderException, ProjectBuildingException, ComponentLookupException, SettingsBuildingException, InvalidRepositoryException {

    final MavenExecutionRequestPopulator mavenExecutionRequestPopulator =  mock(MavenExecutionRequestPopulator.class);
    final Logger logger =  mock(Logger.class);
    final RepositorySystem repositorySystem = mock(RepositorySystem.class);
    final ArtifactRepository artifactRepository = mock(ArtifactRepository.class);

    final SettingsBuilder settingsBuilder =  mock(SettingsBuilder.class);
    final SettingsBuildingResult settingsBuildingResult = mock(SettingsBuildingResult.class);
    final ProjectBuilder projectBuilderMock =  mock(ProjectBuilder.class);
    final DependencyResolutionResult drr = mock(DependencyResolutionResult.class);
    final ProjectBuildingResult projectBuildingResult =  mock(ProjectBuildingResult.class);
    final ArtifactDescriptorException exception = mock(ArtifactDescriptorException.class);
    final ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();

    final ArtifactDescriptorResult result = new ArtifactDescriptorResult(request);
    final Artifact artifactResult = mock(Artifact .class);

    final List<Exception> list = singletonList(exception);

    request.setArtifact(artifactResult);
    result.setArtifact(artifactResult);

    doReturn(settingsBuilder).when(componentProviderMocked).lookup(SettingsBuilder.class);
    doReturn(settingsBuildingResult).when(settingsBuilder).build(any(SettingsBuildingRequest.class));
    when(settingsBuildingResult.getEffectiveSettings()).thenReturn(mock(Settings.class));
    when(componentProviderMocked.getSystemClassLoader()).thenReturn(getClass().getClassLoader());


    doReturn(artifactRepository).when(repositorySystem).createLocalRepository(any(File.class));

    doReturn(new File("").toPath().toString()).when(artifactRepository).getBasedir();

    doReturn(repositorySystem).when(componentProviderMocked).lookup(RepositorySystem.class);

    doReturn(projectBuilderMock).when(componentProviderMocked).lookup(ProjectBuilder.class);

    doReturn(logger).when(componentProviderMocked).lookup(Logger.class);
    doReturn(mavenExecutionRequestPopulator).when(componentProviderMocked).lookup(MavenExecutionRequestPopulator.class);

    doReturn(projectBuildingResult).when(projectBuilderMock).build(any(ModelSource.class), any(ProjectBuildingRequest.class));
    when(projectBuildingResult.getDependencyResolutionResult()).thenReturn(drr);
    when(projectBuildingResult.getDependencyResolutionResult()).thenReturn(drr);
    when(drr.getCollectionErrors()).thenReturn(list);
    when(exception.getResult()).thenReturn(result);

    boolean[] didExecuteTryRemoveLocalArtifact = {false};
    final MavenRequest mavenRequest = createMavenRequest(null);
    final MavenEmbedder embedder = new MavenEmbedderMock2( mavenRequest, null ) {
        void tryRemoveLocalArtifact(Artifact artifact) {
            didExecuteTryRemoveLocalArtifact[0] = true;
            assertEquals(artifact, artifactResult);
        }
    };

    assertThatThrownBy(() -> embedder.readProject(mock(InputStream.class)))
            .isInstanceOf(MavenEmbedderException.class);

    assertTrue(didExecuteTryRemoveLocalArtifact[0]);
}