コード例 #1
0
        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();
        }
コード例 #2
0
        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")));
            }
        }