Clear() 공개 메소드

public Clear ( ) : void
리턴 void
예제 #1
0
 public void CopyFrom(HttpListenerResponse templateResponse)
 {
     headers.Clear();
     headers.Add(templateResponse.headers);
     content_length     = templateResponse.content_length;
     status_code        = templateResponse.status_code;
     status_description = templateResponse.status_description;
     keep_alive         = templateResponse.keep_alive;
     version            = templateResponse.version;
 }
예제 #2
0
        public void FindStreamTest()
        {
            // モックの設定
            var factory = new MockWebClientFactory();
            var mock = factory.MockClient;
            mock.Setup(client => client.DownloadString("http://livetube.cc/hakusai/somesbroadcast")).Returns("<html>\r\nvar comment_entry_id = \"somestreamid\";\r\n</html>\r\n");
            WebHeaderCollection reqHead = new WebHeaderCollection();
            mock.Setup(client => client.Headers).Returns(reqHead);
            WebHeaderCollection resHead = new WebHeaderCollection();
            resHead.Add("Set-Cookie", "SomeCookie");
            mock.Setup(client => client.ResponseHeaders).Returns(resHead);

            // 実際の呼び出し
            LivetubeClient livetube = new LivetubeClient(factory);
            Assert.True(livetube.Login("hakusai", "password"));

            reqHead.Clear();
            resHead.Clear();
            Assert.AreEqual("somestreamid", livetube.FindStream("http://livetube.cc/hakusai/somesbroadcast"));

            reqHead.Clear();
            resHead.Clear();
            livetube.Logoff();

            // 結果の確認
            Assert.AreEqual("SomeCookie", reqHead["Cookie"]);
            mock.Verify(client => client.DownloadString("http://livetube.cc/logoff"));

            livetube.Dispose();
        }
예제 #3
0
        public void PostCommentTest()
        {
            // モックの設定
            var factory = new MockWebClientFactory();
            var mock = factory.MockClient;
            mock.Setup(client => client.DownloadString("http://livetube.cc/hakusai/somesbroadcast")).Returns("<html>\r\nvar comment_entry_id = \"somestreamid\";\r\n</html>\r\n");
            WebHeaderCollection reqHead = new WebHeaderCollection();
            mock.Setup(client => client.Headers).Returns(reqHead);
            WebHeaderCollection resHead = new WebHeaderCollection();
            resHead.Add("Set-Cookie", "SomeCookie");
            mock.Setup(client => client.ResponseHeaders).Returns(resHead);

            // 実際の呼び出し
            LivetubeClient livetube = new LivetubeClient(factory);
            Assert.True(livetube.Login("hakusai", "password"));

            reqHead.Clear();
            resHead.Clear();
            var streamid = livetube.FindStream("http://livetube.cc/hakusai/somesbroadcast");

            reqHead.Clear();
            resHead.Clear();
            livetube.PostComment(streamid, "hakusai", "コメント");

            // 結果の確認
            Assert.AreEqual("application/x-www-form-urlencoded", reqHead["Content-Type"]);
            Assert.AreEqual("SomeCookie", reqHead["Cookie"]);
            byte[] bytes = Encoding.ASCII.GetBytes("name=hakusai&c=%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88");
            mock.Verify(client => client.UploadData("http://livetube.cc/stream/somestreamid.comments", "POST", bytes));

            reqHead.Clear();
            resHead.Clear();
            livetube.Logoff();

            livetube.Dispose();
        }
예제 #4
0
        public void LogoffTest()
        {
            // モックの設定
            var factory = new MockWebClientFactory();
            var mock = factory.MockClient;
            WebHeaderCollection reqHead = new WebHeaderCollection();
            mock.Setup(client => client.Headers).Returns(reqHead);
            WebHeaderCollection resHead = new WebHeaderCollection();
            resHead.Add("Set-Cookie", "SomeCookie");
            mock.Setup(client => client.ResponseHeaders).Returns(resHead);

            // 実際の呼び出し
            LivetubeClient livetube = new LivetubeClient(factory);
            Assert.True(livetube.Login("hakusai", "password"));

            reqHead.Clear();
            resHead.Clear();
            livetube.Logoff();

            // 結果の確認
            Assert.AreEqual("SomeCookie", reqHead["Cookie"]);
            mock.Verify(client => client.DownloadString("http://livetube.cc/logoff"));

            livetube.Dispose();
        }
예제 #5
0
        public void LoginTest2_twice()
        {
            // モックの設定
            var factory = new MockWebClientFactory();
            var mock = factory.MockClient;
            WebHeaderCollection reqHead = new WebHeaderCollection();
            mock.Setup(client => client.Headers).Returns(reqHead);
            WebHeaderCollection resHead = new WebHeaderCollection();
            resHead.Add("Set-Cookie", "SomeCookie");
            mock.Setup(client => client.ResponseHeaders).Returns(resHead);

            // 実際の呼び出し
            LivetubeClient livetube = new LivetubeClient(factory);
            Assert.True(livetube.Login("hakusai", "password"));
            reqHead.Clear();
            resHead.Add("Set-Cookie", "SomeCookie");
            Assert.True(livetube.Login("hakusai", "password"));

            // 結果の確認
            Assert.AreEqual("application/x-www-form-urlencoded", reqHead["Content-Type"]);
            byte[] bytes = Encoding.ASCII.GetBytes("user=hakusai&password=password");
            mock.Verify(client => client.UploadData("http://livetube.cc/login", "POST", bytes));
            mock.Verify(client => client.DownloadString("http://livetube.cc/logoff"));

            livetube.Dispose();
        }
예제 #6
0
        static long MeasureFastReflectionPaths()
        {
            const int iterations = 1000000;

            long ran = 0;

            var sourceMethod = typeof(WebHeaderCollection).GetMethod("AddInternal", BindingFlags.NonPublic | BindingFlags.Instance);

            var @delegate = (AddHeaderDelegate) Delegate.CreateDelegate(typeof(AddHeaderDelegate), sourceMethod);

            var instanceExpression = Expression.Parameter(typeof(WebHeaderCollection));
            var nameParamExpression = Expression.Parameter(typeof(string));
            var valueParamExpression = Expression.Parameter(typeof(string));

            var methodCallExpression = Expression.Call(instanceExpression, sourceMethod, nameParamExpression, valueParamExpression);
            var lambda = Expression.Lambda<AddHeaderDelegate>(methodCallExpression, new[]
            {
                instanceExpression, nameParamExpression, valueParamExpression
            });
            var expression = lambda.Compile();

            var method = new DynamicMethod(
                "",
                null,
                new[] {typeof(WebHeaderCollection), typeof(string), typeof(string)},
                typeof(Program),
                true);
            var ilGenerator = method.GetILGenerator();
            ilGenerator.Emit(OpCodes.Ldarg_0);
            ilGenerator.Emit(OpCodes.Ldarg_1);
            ilGenerator.Emit(OpCodes.Ldarg_2);
            ilGenerator.Emit(OpCodes.Callvirt, sourceMethod);
            ilGenerator.Emit(OpCodes.Ret);

            var dynamicDelegate = (AddHeaderDelegate) method.CreateDelegate(typeof(AddHeaderDelegate));

            var whc = new WebHeaderCollection();
            CodeTimer.Time(true, "delegate",
                iterations,
                () =>
                {
                    @delegate(whc, "test", "abc");
                    @delegate(whc, "test2", "abc1");
                    @delegate(whc, "test3", "abc2");
                    @delegate(whc, "test4", "abc3");
                    @delegate(whc, "test5", "abc4");
                    @delegate(whc, "test6", "abc5");
                    whc.Clear();
                });

            CodeTimer.Time(true, "expression",
                iterations,
                () =>
                {
                    expression(whc, "test", "abc");
                    expression(whc, "test2", "abc1");
                    expression(whc, "test3", "abc2");
                    expression(whc, "test4", "abc3");
                    expression(whc, "test5", "abc4");
                    expression(whc, "test6", "abc5");
                    whc.Clear();
                });

            CodeTimer.Time(true, "delegate",
                iterations,
                () =>
                {
                    dynamicDelegate(whc, "test", "abc");
                    dynamicDelegate(whc, "test2", "abc1");
                    dynamicDelegate(whc, "test3", "abc2");
                    dynamicDelegate(whc, "test4", "abc3");
                    dynamicDelegate(whc, "test5", "abc4");
                    dynamicDelegate(whc, "test6", "abc5");
                    whc.Clear();
                });

            return ran;
        }