| getAttachmentsOfPage(Page) |   | 40% |   | 42% | 11 | 14 | 24 | 44 | 0 | 1 |
| removeRelatedPage(Page, Page) |   | 46% |   | 50% | 5 | 6 | 4 | 19 | 0 | 1 |
| addRelatedPage(Page, Page) |   | 41% |   | 67% | 2 | 4 | 4 | 17 | 0 | 1 |
| restoreVersionOfPage(String, Page) |   | 39% |   | 50% | 3 | 4 | 4 | 14 | 0 | 1 |
| deleteWatcherOfPage(String, Page) |   | 35% |   | 50% | 3 | 4 | 4 | 12 | 0 | 1 |
| addWatcherToPage(String, Page) |   | 29% |   | 50% | 2 | 3 | 4 | 10 | 0 | 1 |
| getParentPageOf(Page) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| updateTemplatePage(Template) |   | 58% |   | 50% | 3 | 4 | 3 | 14 | 0 | 1 |
| toSearchResult(SearchResult) |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 |
| hasPermissionOnWiki(String, String, Identity, PermissionType) |   | 52% |   | 50% | 5 | 6 | 5 | 13 | 0 | 1 |
| hasPermissionOnPage(Page, PermissionType, Identity) |   | 51% |   | 43% | 6 | 8 | 6 | 14 | 0 | 1 |
| getWatchersOfPage(Page) |   | 36% |   | 50% | 2 | 3 | 2 | 5 | 0 | 1 |
| getDraft(WikiPageParams, String) |   | 68% |   | 75% | 2 | 5 | 2 | 15 | 0 | 1 |
| getChildrenPageOf(Page) |   | 62% |   | 67% | 2 | 4 | 2 | 11 | 0 | 1 |
| getRelatedPagesOfPage(Page) |   | 61% |   | 67% | 2 | 4 | 2 | 11 | 0 | 1 |
| getVersionsOfPage(Page) |   | 60% |   | 67% | 2 | 4 | 1 | 11 | 0 | 1 |
| getPreviousNamesOfPage(Page) |   | 57% |   | 67% | 2 | 4 | 2 | 11 | 0 | 1 |
| getWikisByType(String) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| deleteTemplatePage(String, String, String) |   | 39% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| getWikiPermission(String, String) |   | 63% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| updateWikiPermission(String, String, List) |   | 51% |   | 50% | 1 | 2 | 1 | 6 | 0 | 1 |
| getHelpSyntaxPage(String, boolean, List, ConfigurationManager) |   | 87% |   | 80% | 2 | 6 | 2 | 24 | 0 | 1 |
| getPageOfWikiByName(String, String, String) |   | 64% |   | 50% | 3 | 4 | 1 | 4 | 0 | 1 |
| getDraftPageById(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getExsitedOrNewDraftPageById(String, String, String, String) |   | 89% |   | 50% | 5 | 6 | 2 | 21 | 0 | 1 |
| getDownloadURL(String, String, String, Attachment) |   | 84% | | n/a | 0 | 1 | 2 | 17 | 0 | 1 |
| searchTemplate(TemplateSearchData) |   | 94% |   | 60% | 4 | 6 | 1 | 25 | 0 | 1 |
| search(WikiSearchData) |   | 89% |   | 50% | 1 | 2 | 1 | 11 | 0 | 1 |
| fetchPageEntity(Page) |   | 93% |   | 83% | 1 | 4 | 2 | 10 | 0 | 1 |
| createTemplatePage(Wiki, Template) |   | 95% |   | 38% | 4 | 5 | 0 | 13 | 0 | 1 |
| hasPermission(List, Identity, PermissionType) |  | 100% |   | 95% | 1 | 12 | 0 | 17 | 0 | 1 |
| renamePage(String, String, String, String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| createPage(Wiki, Page, Page) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| deletePage(String, String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| movePage(WikiPageParams, WikiPageParams) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addAttachmentToPage(Attachment, Page) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| deleteAttachmentOfPage(String, Page) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTemplates(WikiPageParams) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| deleteDraftOfPage(Page, String) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| JPADataStorage(WikiDAO, PageDAO, PageAttachmentDAO, DraftPageAttachmentDAO, DraftPageDAO, PageVersionDAO, PageMoveDAO, TemplateDAO, EmotionIconDAO, DataInitializer, FileService) |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| createWiki(Wiki) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addPageVersion(Page) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| updatePage(Page) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| deleteAttachmentsOfDraftPage(DraftPageEntity) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDraft(String, String) |  | 100% |   | 75% | 2 | 5 | 0 | 9 | 0 | 1 |
| deletePageEntity(PageEntity) |  | 100% |   | 75% | 1 | 3 | 0 | 8 | 0 | 1 |
| getDraftPagesOfUser(String) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| updateWikiOfPageTree(WikiEntity, PageEntity) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| getEmotionIcons() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getRelatedPage(String, String, String) |  | 100% |   | 75% | 1 | 3 | 0 | 5 | 0 | 1 |
| getSearchedText(WikiSearchData) |  | 100% |   | 75% | 1 | 3 | 0 | 6 | 0 | 1 |
| createEmotionIcon(EmotionIcon) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| deleteDraftByName(String, String) |  | 100% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| createDraftPageForUser(DraftPage, String) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| getTemplatePage(WikiPageParams, String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getPageById(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLastestDraft(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getWikiByTypeAndOwner(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hasAdminSpacePermission(String, String, Identity) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hasAdminPagePermission(String, String, Identity) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getEmotionIconByName(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |