@Override public Message getMessageById(String userName, String messageId) { return messageStore.findMessageById(userName, messageId); }
@Override public long getMessagesAmount(final String userName, final List<MessageType> types) { return messageStore.getMessageAmount(userName, types); }
@Override public List<Message> getMessageBatch(String userName, List<MessageType> types, Map<String, Boolean> sortCriteria, int limit, int offset) { return messageStore.getMessages(userName, types, sortCriteria, limit, offset); }
protected String buildQueryMessageStatement(String userName, List<MessageType> messageTypeList, Map<String, Boolean> sortCriteria) { MessageType[] messageTypes; if (Iterables.elementsEqual(messageTypeList, Arrays.asList(MessageType.values()))) { messageTypes = new MessageType[]{}; } else { messageTypes = messageTypeList.toArray(new MessageType[messageTypeList.size()]); } return String.format(QUERY_MESSAGE_STATEMENT, userName). concat(buildWhereTypesClause(messageTypes)). concat(constructOrderBy(sortCriteria)); }
@Test public void testRemoveMessageById() throws Exception { // GIVEN final String id = "1234"; final MockNode messageNode = createEmptyMessageMockNode(id); final String userName = MgnlContext.getUser().getName(); store.saveMessage(userName, store.unmarshallMessage(messageNode)); Message result = store.findMessageById(userName, id); assertNotNull(result); // WHEN store.removeMessageById(userName, id); // THEN result = store.findMessageById(userName, id); assertNull(result); }
@Test public void testFindMessageById() throws Exception { // GIVEN final String id = "1234"; final MockNode messageNode = createEmptyMessageMockNode(id); final String userName = MgnlContext.getUser().getName(); boolean saved = store.saveMessage(userName, store.unmarshallMessage(messageNode)); assertTrue(saved); // WHEN Message result = store.findMessageById(userName, id); // THEN assertNotNull(result); }
@Test public void getNumberOfUnclearedMessagesForUserWithAtInName() throws Exception { //GIVEN messageStore.saveMessage(USER_WITH_AT, error); messageStore.saveMessage(USER_WITH_AT, warning); messageStore.saveMessage(USER_WITH_AT, info); // WHEN int count = messageStore.getNumberOfUnclearedMessagesForUser(USER_WITH_AT); // THEN assertEquals(3, count); }
@Override public void clearMessage(final String userName, final String messageId) { final Message message = messageStore.findMessageById(userName, messageId); if (message != null && !message.isCleared()) { message.setCleared(true); messageStore.saveMessage(userName, message); sendMessageClearedEvent(userName, message); } }
@Test public void getMessageAmounForUserWithAtInName() throws Exception { //GIVEN messageStore.saveMessage(USER_WITH_AT, error); messageStore.saveMessage(USER_WITH_AT, warning); messageStore.saveMessage(USER_WITH_AT, info); // WHEN long amountWithoutTypeSpecified = messageStore.getMessageAmount(USER_WITH_AT, Lists.<MessageType>newArrayList()); // THEN assertEquals(3, amountWithoutTypeSpecified); }
@Test public void fetchMessagesForUserWithAtInName() throws Exception { //GIVEN messageStore.saveMessage(USER_WITH_AT, error); messageStore.saveMessage(USER_WITH_AT, warning); messageStore.saveMessage(USER_WITH_AT, info); // WHEN final List<Message> allMessages = messageStore.getMessages(USER_WITH_AT, Lists.<MessageType>newArrayList(), Maps.<String, Boolean>newHashMap(), 3, 0); // THEN assertEquals(3, allMessages.size()); assertThat(allMessages, containsMessages(error, warning, info)); }
@Override @Before public void setUp() throws Exception { super.setUp(); final RepositoryManager repositoryManager = Components.getComponent(RepositoryManager.class); repositoryManager.loadWorkspace(REPOSITORY, WORKSPACE); repositoryManager.getRepositoryProvider(REPOSITORY).registerNodeTypes(getClass().getResourceAsStream(NODE_TYPES)); messageStore = new MessageStore(); error = createMessage("1", MessageType.ERROR); warning = createMessage("2", MessageType.WARNING); info = createMessage("3", MessageType.INFO); messageStore.saveMessage(USER, error); messageStore.saveMessage(USER, warning); messageStore.saveMessage(USER, info); }
@Override public void saveMessage(String userName, Message message) { messageStore.saveMessage(userName, message); } }
@Override public int getNumberOfUnclearedMessagesForUser(String userName) { return messageStore.getNumberOfUnclearedMessagesForUser(userName); }
@Override public void removeMessage(String userName, String messageId) { messageStore.removeMessageById(userName, messageId); sendMessageRemovedEvent(userName, messageId); }
@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); }
@Override public List<Message> getMessagesForUser(String userName) { return messageStore.findAllMessagesForUser(userName); }
@Test public void testSaveMessage() throws Exception { // GIVEN final String id = "1234"; final MockNode messageNode = createEmptyMessageMockNode(id); final String userName = MgnlContext.getUser().getName(); // WHEN boolean saved = store.saveMessage(userName, store.unmarshallMessage(messageNode)); // THEN assertTrue(saved); Message result = store.findMessageById(userName, id); assertNotNull(result); }
@Test public void getNumberOfUnclearedMessagesForUser() throws Exception { //GIVEN error.setCleared(false); warning.setCleared(true); info.setCleared(true); messageStore.saveMessage(USER, error); messageStore.saveMessage(USER, warning); messageStore.saveMessage(USER, info); // WHEN int count = messageStore.getNumberOfUnclearedMessagesForUser(USER); // THEN assertEquals(1, count); }
@Override public void sendMessage(String userName, Message message) { // We need to set the id to null to make sure each user gets a unique id. Otherwise an id // suitable for a first user gets generated and is then used for everyone, possible overwriting // already existing messages for some users. message.setId(null); messageStore.saveMessage(userName, message); sendMessageSentEvent(userName, message); }
@Override @Before public void setUp() throws Exception { super.setUp(); MockContext ctx = MockUtil.getMockContext(); final User user = mock(User.class); when(user.getName()).thenReturn("system"); ctx.setUser(user); Session session = new MockSession(MessageStore.WORKSPACE_NAME); MockUtil.getSystemMockContext().addSession(MessageStore.WORKSPACE_NAME, session); final SecuritySupportImpl securitySupport = new SecuritySupportImpl(); MgnlUserManager userMgr = new MgnlUserManager() { { setRealmName(Realm.REALM_SYSTEM.getName()); } @Override public User getSystemUser() { return user; } }; securitySupport.addUserManager(Realm.REALM_SYSTEM.getName(), userMgr); ComponentsTestUtil.setInstance(SecuritySupport.class, securitySupport); MockUtil.getMockContext().setUser(user); store = new MessageStore(); }