public async Task CognitiveService_ProcessShouldReturnActiveProcessor() { var processor1 = Substitute.For <ICommandProcessor>(); var processor2 = Substitute.For <ICommandProcessor>(); var chatEvent = GetChatEvent("@mentorbot Get My Processor. "); var info = new TextDeconstructionInformation(null, "My"); var settings = new MentorBotSettings { Processors = new[] { new ProcessorSettings { Name = "Processor 1", Enabled = false }, new ProcessorSettings { Name = "Processor 2", Enabled = true, Data = new[] { new KeyValuePair <string, string>("K", "") } } } }; _commandProcessors.Add(processor1); _commandProcessors.Add(processor2); processor1.Subject.Returns("My"); processor2.Subject.Returns("My"); processor1.Name.Returns("Processor 1"); processor2.Name.Returns("Processor 2"); _connector.DeconstructAsync("Get My Processor").Returns(info); _cache.TryGetValue(Constants.SettingsCacheKey, out Arg.Any <object>()) .Returns(x => { x[1] = settings; return(true); }); var result = await _service.ProcessAsync(chatEvent); Assert.AreEqual(result.TextDeconstructionInformation, info); Assert.AreEqual(result.CommandProcessor.Name, "Processor 2"); Assert.AreEqual(result.Settings.Count, 1); }
public async Task CognitiveService_ProcessShouldReturnActiveProcessor() { var processor1 = Substitute.For <ICommandProcessor>(); var processor2 = Substitute.For <ICommandProcessor>(); var chatEvent = GetChatEvent("@mentorbot Get My Processor. "); var info = new TextDeconstructionInformation(null, "My"); var settings = new Plugin[] { new Plugin { ProcessorTypeName = "Processor 1", Enabled = false, }, new Plugin { ProcessorTypeName = "Processor 2", Enabled = true, } }; _commandProcessors.Add(processor1); _commandProcessors.Add(processor2); processor1.Subject.Returns("My"); processor2.Subject.Returns("My"); processor1.Name.Returns("Processor 1"); processor2.Name.Returns("Processor 2"); _connector.DeconstructAsync("Get My Processor").Returns(info); _cache.TryGetValue(Constants.PluginsCacheKey, out Arg.Any <object>()) .Returns(x => { x[1] = settings; return(true); }); var result = await _service.ProcessAsync(chatEvent); Assert.AreEqual(result.TextDeconstructionInformation, info); Assert.AreEqual(result.CommandProcessor.Name, "Processor 2"); Assert.IsNotNull(result.PropertiesAccessor); }