Esempio n. 1
0
        /// <summary>
        /// Cavetube用Main(テスト用に差し替え可能な形)
        /// </summary>
        /// <param name="authFactory">使用するICavetubeAuthのインスタンスを選択</param>
        /// <param name="clientFactory">使用するICavetubeCelientのインスタンスを選択</param>
        /// <param name="pso2Factory">使用するIPso2LogWatcherのインスタンスを選択</param>
        /// <param name="waitAction">プログラムの終了を待つためのActionを選択</param>
        public static void CavetubeMain(
            ICavetubeAuthFactory authFactory,
            ICavetubeClientFactory clientFactory,
            IPso2LogWatcherFactory pso2Factory,
            Action waitAction)
        {
            using (CavetubeAuthManager manager = new CavetubeAuthManager(USER, PASSWORD, authFactory))
            using (var client = clientFactory.CreateCavetubeClient())
            {
                client.Connect();

                // 部屋名取得はapi経由でいいのだろうか?
                // 特定ユーザーの配信をチェックするのはコメントサーバからできるかも
                String url = new Uri(String.Format("http://gae.cavelis.net/live/{0}", USER)).AbsoluteUri;
                ISummary summary = client.GetSummary(url);
                if (summary.RoomId == null)
                    throw new ApplicationException("部屋IDの取得に失敗しました");

                CavetubeUtility.Joinning(client, summary.RoomId, () =>
                {
                    _logger.Debug("Joinした");
                    _logger.Debug("API Key: {0}", manager.GetApiKey());

                    LogWatch(
                        (String user, String message) =>
                        {
                            client.PostComment(user, message, manager.GetApiKey());
                        },
                        waitAction,
                        pso2Factory
                    );
                });
            }
        }
Esempio n. 2
0
 public void ConstructorTest()
 {
     using (var manager = new CavetubeAuthManager("someone", "password"))
     {
         var auth = manager.GetType().GetField("_auth",
             BindingFlags.GetField | BindingFlags.SetField
             | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(manager);
         Assert.AreEqual(typeof(CavetubeAuthWrapper), auth.GetType());
     }
 }
Esempio n. 3
0
        public void GetApiKeyTest()
        {
            var factory = new MockCavetubeAuthFactory();
            var mock = factory.MockCavetubeAuth;
            mock.Setup(a => a.Login(It.IsAny<string>(), It.IsAny<string>())).Returns("apikey");
            ICavetubeAuth auth = mock.Object;

            using (CavetubeAuthManager manager = new CavetubeAuthManager("hakusai", "password", factory))
            {
                Assert.AreEqual("apikey", manager.GetApiKey());
            }

            mock.Verify(a => a.Logout("hakusai", "password"), Times.Once());
        }