@Override @Before public void setUp() throws Exception { super.setUp(); session = SessionTestUtil.createSession("messages", "/"); MockUtil.initMockContext(); MockUtil.setSystemContextSessionAndHierarchyManager(session); MockUtil.getMockContext().setUser(createMockUser("system")); MessageStore messageStore = new MessageStore(); alice = createMockUser("alice"); bob = createMockUser("bob"); ArrayList<User> users = new ArrayList<User>(); users.add(alice); users.add(bob); when(userManager.getAllUsers()).thenReturn(users); SecuritySupport securitySupport = mock(SecuritySupport.class); when(securitySupport.getUserManager()).thenReturn(userManager); messagesManager = new MessagesManagerImpl(Providers.of(securitySupport), messageStore); }
@Test public void testSendLocalMessage() throws RepositoryException { // GIVEN final User me = createMockUser("me"); ((MockWebContext) MgnlContext.getInstance()).setUser(me); MessagesManager.MessageListener listenerA = mock(MessagesManager.MessageListener.class); messagesManager.registerMessagesListener(me.getName(), listenerA); Message message = new Message(); message.setType(MessageType.INFO); message.setSubject("subject"); message.setMessage("message"); // WHEN messagesManager.sendLocalMessage(message); // THEN assertNotNull("Local messages have id", message.getId()); verify(listenerA).messageSent(any(Message.class)); assertTrue("Local message are persisted.", session.nodeExists("/me")); }