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(); }
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(); }
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(); }
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(); }