TagsHelper { public static HashMap<String, Integer> retrieveTags(Note note) { HashMap<String, Integer> tagsMap = new HashMap<>(); for (String token : (note.getTitle() + " " + note.getContent()).replaceAll("\n", "").trim().split(" ")) { if (RegexPatternsConstants.HASH_TAG.matcher(token).matches()) { int count = tagsMap.get(token) == null ? 0 : tagsMap.get(token); tagsMap.put(token, ++count); } } return tagsMap; }  static List<Tag> getAllTags(); static HashMap<String, Integer> retrieveTags(Note note); static Pair<String, List<Tag>> addTagToNote(List<Tag> tags, Integer[] selectedTags, Note note); static Pair<String, String> removeTag(String noteTitle, String noteContent, List<Tag> tagsToRemove); static String[] getTagsArray(List<Tag> tags); static Integer[] getPreselectedTagsArray(Note note, List<Tag> tags); static Integer[] getPreselectedTagsArray(List<Note> notes, List<Tag> tags);  }
@Test public void retrievesTagsFromNote() { HashMap<String, Integer> tags = TagsHelper.retrieveTags(note); assertEquals(tags.size(), 3); assertTrue(tags.containsKey(TAG1)); assertTrue(tags.containsKey(TAG2)); assertTrue(tags.containsKey(TAG3)); assertFalse(tags.containsKey("#nonExistingTag")); }
@Test public void retrievesTagsFromNoteMultilanguage() { note.setContent("#привет"); HashMap<String, Integer> tags = TagsHelper.retrieveTags(note); assertTrue(tags.containsKey("#привет")); note.setContent("#中华人民共和国"); tags = TagsHelper.retrieveTags(note); assertTrue(tags.containsKey("#中华人民共和国")); }