Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
 public FeatureMessageProcessor(ICommandParser commandParser, params IFeature[] features)
 {
     m_CommandParser    = commandParser;
     m_Features         = GetFeaturesByName(features);
     m_MessageProcessor = new CompositeMessageProcessor(features.Select(x => x.MessageProcessor).ToArray());
 }