@Test(
      dataProvider = "basicInfo",
      dependsOnMethods = {"testExecuteNoAction"},
      alwaysRun = true)
  public void testRemoveArticles(
      ArticleList articleList,
      Map<String, Integer> indices,
      Set<String> validDois,
      Set<String> orphanDois)
      throws Exception {
    // delete first three dois
    List<Article> articlesToDelete =
        dummyDataStore.get(ArticleList.class, articleList.getID()).getArticles().subList(0, 3);
    String[] articlesToDeleteArray = new String[3];
    for (int i = 0; i < 3; i++) {
      articlesToDeleteArray[i] = articlesToDelete.get(i).getDoi();
    }

    action.setCommand("REMOVE_ARTICLES");
    action.setListKey(articleList.getListKey());
    action.setArticlesToRemove(articlesToDeleteArray);

    String result = action.execute();
    assertEquals(result, Action.SUCCESS, "Action didn't return success");

    assertEquals(action.getActionErrors().size(), 0, "Action returned error messages");
    assertEquals(
        action.getActionMessages().size(), 1, "Action didn't return messages indicating success");

    for (Article article : articlesToDelete) {
      String doi = article.getDoi();
      assertFalse(
          getDois(action.getArticleList().getArticles()).contains(doi),
          "Article " + doi + " didn't get removed from action's article list");
      assertFalse(
          action.getArticleOrderCSV().contains(doi),
          "Article " + doi + " didn't get removed from action's csv");
    }

    // check the values in the db
    List<Article> storedArticleList =
        dummyDataStore.get(ArticleList.class, articleList.getID()).getArticles();
    for (Article article : articlesToDelete) {
      String doi = article.getDoi();
      assertFalse(
          getDois(storedArticleList).contains(doi),
          "Article " + doi + " didn't get removed from list in the database");
      try {
        articleService.getArticle(doi, DEFAULT_ADMIN_AUTHID);
      } catch (NoSuchArticleIdException e) {
        fail(
            "Article "
                + doi
                + " got deleted from the database instead of just being removed from the list");
      }
    }
  }