@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); }
@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()); }