private static void Main() { var appSettings = GetAppStore(APP_PREFIX).Load(); var userStore = GetUserStore(FILENAME); var loader = new DefaultTokenLoader(appSettings, userStore); var authorizer = new ConsoleAuthorizer(appSettings); var safeLoader = new AuthorizingTokenLoader(loader, authorizer, userStore); var tokens = safeLoader.Load(); var channel = new TwitterChannel(tokens); var channelAdapter = new TwitterChannelAdapter(channel, new NullAccountRepository()); var interpreter = new Interpreter(new FakeCommandParser()); var monitor = new ChannelMonitor(interpreter); Console.WriteLine("Monitoring..."); monitor.Monitor(channelAdapter); Console.ReadLine(); }
public void ExecutesIncomingCommands() { var channel = new Mock <Channel <Message> >(); using (var incoming = new Subject <Message>()) { channel .Setup(it => it.Receive()) .Returns(incoming); var account = new Account(1, "guest"); interpreter .Setup(it => it.Execute(account, "command")) .Returns("response"); sut.Monitor(channel.Object); incoming.OnNext(new Message { Account = account, Text = "command" }); channel.Verify(it => it.Send(It.Is <Message>(m => m.Account == account && m.Text == "response"))); } }