package com.qprogramming.tasq.support.web; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.ui.Model; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.qprogramming.tasq.support.web.Message; import com.qprogramming.tasq.support.web.MessageHelper; @RunWith(MockitoJUnitRunner.class) public class MessageHelperTest { private static final String MESSAGE = "Message"; @Mock RedirectAttributes ra; @Mock Model model; @Test public void addSuccessMessageTest() { MessageHelper.addSuccessAttribute(ra, MESSAGE); verify(ra, times(1)) .addFlashAttribute( anyString(), new Message(anyString(), Message.Type.SUCCESS, new Object[] {})); } @Test public void addErrorMessageTest() { MessageHelper.addErrorAttribute(ra, MESSAGE); verify(ra, times(1)).addFlashAttribute(anyString(), new Message(anyString(), Message.Type.DANGER, new Object[] {})); } @Test public void addWarrningMessageTest() { MessageHelper.addWarningAttribute(ra, MESSAGE); verify(ra, times(1)) .addFlashAttribute( anyString(), new Message(anyString(), Message.Type.WARNING, new Object[] {})); } @Test public void addInfoMessageTest() { MessageHelper.addInfoAttribute(ra, MESSAGE); verify(ra, times(1)).addFlashAttribute(anyString(), new Message(anyString(), Message.Type.INFO, new Object[] {})); } @Test public void addMessagesWithModelTest() { MessageHelper.addSuccessAttribute(model, MESSAGE); MessageHelper.addErrorAttribute(model, MESSAGE); MessageHelper.addWarningAttribute(model, MESSAGE); MessageHelper.addInfoAttribute(model, MESSAGE); verify(model, times(4)).addAttribute(anyString(), any(Message.class)); } @Test public void createMessageTest() { Message message = new Message(MESSAGE, Message.Type.SUCCESS); Message message2 = new Message(MESSAGE, Message.Type.SUCCESS, new Object[] {}); Assert.assertEquals(Message.Type.SUCCESS, message.getType()); Assert.assertEquals(MESSAGE, message.getMessage()); Assert.assertNotNull(message2.getArgs()); } }