public static Pair<String, List<Tag>> addTagToNote(List<Tag> tags, Integer[] selectedTags,
      Note note) {
    StringBuilder sbTags = new StringBuilder();
    List<Tag> tagsToRemove = new ArrayList<>();
    Map<String, Integer> tagsMap = retrieveTags(note);

    List<Integer> selectedTagsList = Arrays.asList(selectedTags);
    for (int i = 0; i < tags.size(); i++) {
      if (mapContainsTag(tagsMap, tags.get(i))) {
        if (!selectedTagsList.contains(i)) {
          tagsToRemove.add(tags.get(i));
        }
      } else {
        if (selectedTagsList.contains(i)) {
          if (sbTags.length() > 0) {
            sbTags.append(" ");
          }
          sbTags.append(tags.get(i));
        }
      }
    }
    return Pair.create(sbTags.toString(), tagsToRemove);
  }
@Test
  public void addsTagsToNote() {
    String newTag = "#addedTag";
    List<Tag> tags = new ArrayList<>();
    tags.add(new Tag(newTag, 1));
    tags.add(TAG2);
    Pair<String, List<Tag>> newTags = TagsHelper.addTagToNote(tags, new Integer[]{0, 1}, note);
    assertTrue(newTags.first.contains(newTag));
    assertFalse(newTags.first.contains(TAG2.getText()));
  }