/** * This test ensures that the "processTab" method correctly adds an annotation. This function is * required to support the new prompt for saving the record when the user clicks "add" for * annotations. Refer to https://sourceforge.net/p/webcurator/enhancements/84/ * * @throws Exception */ @Test public final void testProcessTab() throws Exception { HttpServletRequest aReq = new MockHttpServletRequest(); SiteManager siteManager = new MockSiteManagerImpl(testFile); testInstance.setSiteManager(siteManager); Site site = siteManager.getSite(9000L, true); List<Annotation> list = createAnnotationList(); assertFalse(checkSortedList(list)); site.setAnnotations(list); SiteEditorContext ctx = new SiteEditorContext(site); aReq.getSession().setAttribute(SiteController.EDITOR_CONTEXT, ctx); HttpServletResponse aResp = new MockHttpServletResponse(); SiteCommand aCmd = new SiteCommand(); TabbedController tc = new SiteController(); TabConfig tabConfig = new TabConfig(); tabConfig.setViewName("site"); List<Tab> tabs = getTabList(siteManager); tabConfig.setTabs(tabs); tc.setTabConfig(tabConfig); Tab currentTab = tabs.get(0); aCmd.setCmdAction(SiteCommand.ACTION_ADD_NOTE); aCmd.setAnnotation("A note"); BindException aErrors = new BindException(aCmd, aCmd.getCmdAction()); List<Annotation> resultAnnotations = site.getAnnotations(); int numAnnotations = resultAnnotations.size(); testInstance.processTab(tc, currentTab, aReq, aResp, aCmd, aErrors); assertEquals(resultAnnotations.size(), numAnnotations + 1); Annotation resultAnnotation = resultAnnotations.get(resultAnnotations.size() - 1); assertEquals("A note", resultAnnotation.getNote()); }
private Annotation createAnnotation(String note, String date) throws ParseException { Annotation ann = new Annotation(); ann.setDate(sdf.parse(date)); ann.setNote(note); ann.setUser(AuthUtil.getRemoteUserObject()); return ann; }