public static IFeature Create(ICommandParser commandParser) { var time = new Time(); var jiraApi = new CachedJiraApi(time, new JiraApi()); var processor = new CompositeMessageProcessor( new JiraBugProcessor(commandParser, jiraApi), new JiraLabelSuggester(commandParser, jiraApi)); return(new BasicFeature("jira", "track jira tickets mentioned in chat", "", processor)); }
public void CompositeMessageProcessorGroupsTogetherResponses() { var subProcessor1 = new Mock <IMessageProcessor>(); var subProcessor2 = new Mock <IMessageProcessor>(); var response1 = new Response("a", "b"); subProcessor1.Setup(x => x.ProcessMessage(It.IsAny <Message>())).Returns(response1); var response2 = new Response("c", "d", "image"); subProcessor2.Setup(x => x.ProcessMessage(It.IsAny <Message>())).Returns(response2); var compositeMessageProcessor = new CompositeMessageProcessor(subProcessor1.Object, subProcessor2.Object); var result = compositeMessageProcessor.ProcessMessage(new Message("asdf", "a-user", "some-text")); CollectionAssert.AreEqual(new[] { response1, response2 }, result.Responses); }
public FeatureMessageProcessor(ICommandParser commandParser, params IFeature[] features) { m_CommandParser = commandParser; m_Features = GetFeaturesByName(features); m_MessageProcessor = new CompositeMessageProcessor(features.Select(x => x.MessageProcessor).ToArray()); }