@Test public void updateOk() { // Given Model model = new ExtendedModelMap(); Entry entry = entryFactoryForTest.newEntry(); Integer identry = entry.getIdentry(); BindingResult bindingResult = mock(BindingResult.class); RedirectAttributes redirectAttributes = mock(RedirectAttributes.class); HttpServletRequest httpServletRequest = mock(HttpServletRequest.class); Entry entrySaved = new Entry(); entrySaved.setIdentry(identry); when(entryService.update(entry)).thenReturn(entrySaved); // When String viewName = entryController.update(entry, bindingResult, model, redirectAttributes, httpServletRequest); // Then assertEquals("redirect:/entry/form/" + entry.getIdentry(), viewName); Map<String, ?> modelMap = model.asMap(); assertEquals(entrySaved, (Entry) modelMap.get("entry")); assertEquals(null, modelMap.get("mode")); assertEquals(null, modelMap.get("saveAction")); Mockito.verify(messageHelper) .addMessage(redirectAttributes, new Message(MessageType.SUCCESS, "save.ok")); }
@Test public void formForUpdate() { // Given Model model = new ExtendedModelMap(); givenPopulateModel(); Entry entry = entryFactoryForTest.newEntry(); Integer identry = entry.getIdentry(); when(entryService.findById(identry)).thenReturn(entry); // When String viewName = entryController.formForUpdate(model, identry); // Then assertEquals("entry/form", viewName); Map<String, ?> modelMap = model.asMap(); assertEquals(entry, (Entry) modelMap.get("entry")); assertEquals("update", modelMap.get("mode")); assertEquals("/entry/update", modelMap.get("saveAction")); List<EntrytypeListItem> entrytypeListItems = (List<EntrytypeListItem>) modelMap.get("listOfEntrytypeItems"); assertEquals(2, entrytypeListItems.size()); }
@Test public void list() { // Given Model model = new ExtendedModelMap(); List<Entry> list = new ArrayList<Entry>(); when(entryService.findAll()).thenReturn(list); // When String viewName = entryController.list(model); // Then assertEquals("entry/list", viewName); Map<String, ?> modelMap = model.asMap(); assertEquals(list, modelMap.get("list")); }
@Test public void updateException() { // Given Model model = new ExtendedModelMap(); givenPopulateModel(); RedirectAttributes redirectAttributes = mock(RedirectAttributes.class); HttpServletRequest httpServletRequest = mock(HttpServletRequest.class); BindingResult bindingResult = mock(BindingResult.class); when(bindingResult.hasErrors()).thenReturn(false); Entry entry = entryFactoryForTest.newEntry(); Exception exception = new RuntimeException("test exception"); when(entryService.update(entry)).thenThrow(exception); // When String viewName = entryController.update(entry, bindingResult, model, redirectAttributes, httpServletRequest); // Then assertEquals("entry/form", viewName); Map<String, ?> modelMap = model.asMap(); assertEquals(entry, (Entry) modelMap.get("entry")); assertEquals("update", modelMap.get("mode")); assertEquals("/entry/update", modelMap.get("saveAction")); Mockito.verify(messageHelper).addException(model, "entry.error.update", exception); @SuppressWarnings("unchecked") List<EntrytypeListItem> entrytypeListItems = (List<EntrytypeListItem>) modelMap.get("listOfEntrytypeItems"); assertEquals(2, entrytypeListItems.size()); }