@Before public void setup() { mockAccountDao = mock(AccountDao.class); mockFormDao = mock(FormDao.class); mockFormFieldDao = mock(FormFieldDao.class); mockAccountService = mock(AccountService.class); account = new Account(); account.setId(1L); form = new Form(); form.setAccount(account); form.setFields(new ArrayList<FormField>()); field = new FormField(); field.setForm(form); form.getFields().add(field); when(mockAccountDao.findByUsernameOrEmail("user")).thenReturn(account); when(mockFormDao.findById(1L)).thenReturn(form); when(mockFormFieldDao.findById(1L)).thenReturn(field); formService = new FormService(); formService.setAccountDao(mockAccountDao); formService.setMapper(mapper); formService.setFormDao(mockFormDao); formService.setFormFieldDao(mockFormFieldDao); formService.setAccountService(mockAccountService); }
/** * 跳转到任务执行页面 * * @param request * @return */ @RequestMapping(value = "/form.do") public String from( HttpServletRequest request, @RequestParam("taskId") String taskId, Model model) { List<Task> taskList = taskService.createTaskQuery().taskId(taskId).list(); Task task = taskList.get(0); // 获取表单数据 TaskFormData tfd = formService.getTaskFormData(taskId); List<FormProperty> fpList = tfd.getFormProperties(); Map map = runtimeService.getVariables(task.getExecutionId()); List<ActivityImpl> activityList = new ArrayList<ActivityImpl>(); try { // 查找所有可驳回的节点 activityList = processExtensionService.findBackActivity(taskId); // model.addAttribute("activityList",activityList); } catch (Exception e) { e.printStackTrace(); } // model.addAttribute("task",task); // model.addAttribute("fpList",fpList); // model.addAttribute("map",map); // model.addAttribute("taskId",taskId); request.setAttribute("task", task); request.setAttribute("fpList", fpList); request.setAttribute("map", map); request.setAttribute("taskId", taskId); request.setAttribute("activityList", activityList); return "/simple/form"; }
@Test public void deleteFormField() { formService.deleteField(1L, 1L, "user"); ArgumentCaptor<FormField> argument = ArgumentCaptor.forClass(FormField.class); verify(mockFormFieldDao).delete(argument.capture()); assertEquals(field, argument.getValue()); }
@Test public void modifyForm() { ModifyFormDTO dto = new ModifyFormDTO(); dto.setName("new name"); formService.modifyForm(1L, dto, "user"); ArgumentCaptor<Form> argument = ArgumentCaptor.forClass(Form.class); verify(mockFormDao).update(argument.capture()); assertEquals("new name", argument.getValue().getName()); }
@Test public void createForm() { CreateFormDTO createFormDTO = new CreateFormDTO(); createFormDTO.setName("Dangerous Speech Categorisation"); formService.createForm(createFormDTO, "user"); ArgumentCaptor<Form> argument = ArgumentCaptor.forClass(Form.class); verify(mockFormDao).create(argument.capture()); Form form = argument.getValue(); assertEquals("Dangerous Speech Categorisation", form.getName()); verify(mockAccountService).logActivity(account, ActivityType.CREATE, form); }
@Test public void modifyFormField() { ModifyFormFieldDTO dto = new ModifyFormFieldDTO(); dto.setTitle("New Title"); dto.setType("multiple"); dto.setRequired(false); dto.setDescription("New Description"); dto.setOptions(new ArrayList<String>()); dto.getOptions().add("New Option"); formService.modifyField(1L, 1L, dto, "user"); ArgumentCaptor<FormField> argument = ArgumentCaptor.forClass(FormField.class); verify(mockFormFieldDao).update(argument.capture()); FormField field = argument.getValue(); assertEquals("New Title", field.getTitle()); assertEquals("multiple", field.getType()); assertEquals(false, field.getRequired()); assertEquals("New Description", field.getDescription()); assertEquals("[\"New Option\"]", field.getOptions()); }
@Test public void createField() { CreateFormFieldDTO dto = new CreateFormFieldDTO(); dto.setTitle("field title"); dto.setType("multiple"); dto.setRequired(true); dto.setDescription("field description"); dto.setOptions(new ArrayList<String>()); dto.getOptions().add("Test Option"); formService.createField(1L, dto, "user"); ArgumentCaptor<FormField> argument = ArgumentCaptor.forClass(FormField.class); verify(mockFormFieldDao).create(argument.capture()); FormField field = argument.getValue(); assertEquals("field title", field.getTitle()); assertEquals("multiple", field.getType()); assertEquals(true, field.getRequired()); assertEquals("field description", field.getDescription()); assertEquals("[\"Test Option\"]", field.getOptions()); }