public void serviceコマンドによる起動停止(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "{\"code\":200,\"message\":\"start service [control]\"}"; //exercise cl.Send(Encoding.ASCII.GetBytes("PUT /mail/control?service=start HTTP/1.1\n\n")); var str = Encoding.UTF8.GetString(cl.Recv(3000, 10, this)); var json = str.Substring(str.IndexOf("\r\n\r\n") + 4); dynamic d = JsonConvert.DeserializeObject(json); //dynamic data = d.data; //var actual = data.Count; var actual = (string)json; //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); //メールボックスの初期化 MailBoxSetup(); }
public void Deleteによるメール削除_limit指定(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = 4; //exercise cl.Send(Encoding.ASCII.GetBytes("DELETE /mail/message?limit=3 HTTP/1.1\n\n")); var res = cl.Recv(3000, 10, this); cl.Close(); cl = CreateClient(inetKind); cl.Send(Encoding.ASCII.GetBytes("GET /mail/message HTTP/1.1\n\n")); var str = Encoding.UTF8.GetString(cl.Recv(3000, 10, this)); var json = str.Substring(str.IndexOf("\r\n\r\n") + 4); dynamic d = JsonConvert.DeserializeObject(json); dynamic data = d.data; var actual = data.Count; //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); //メールボックスの初期化 MailBoxSetup(); }
public void AUTH_LOGIN認証_正常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Ehlo(cl); var expected = "235 Authentication successful.\r\n"; //exercise cl.StringSend("AUTH LOGIN"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 VXNlcm5hbWU6\r\n")); cl.StringSend(Base64.Encode("user1")); //ユーザ名をBase64で送る Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 UGFzc3dvcmQ6\r\n")); cl.StringSend(Base64.Encode("user1"));//パスワードをBase64で送る var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void AUTH_LOGIN認証_異常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Ehlo(cl); String expected = null; //exercise cl.StringSend("AUTH LOGIN"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 VXNlcm5hbWU6\r\n")); cl.StringSend(Base64.Encode("user1")); //ユーザ名をBase64で送る Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 UGFzc3dvcmQ6\r\n")); cl.StringSend(Base64.Encode("user1") + "XXX");//パスワードをBase64で送る <=ゴミデータ追加 var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void AUTH_PLAIN認証_正常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Ehlo(cl); var expected = "235 Authentication successful.\r\n"; //exercise cl.StringSend("AUTH PLAIN"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 \r\n")); //UserID\0UserID\0Password」をBase64でエンコード var str = string.Format("user1\0user1\0user1"); str = Base64.Encode(str); cl.StringSend(str); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void AUTH_PLAIN認証_異常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Ehlo(cl); //↓これは、後ほど仕様変更が必要 var expected = "500 command not understood: dXNlcjEAdXNlcjEAdXNlcjFYWFg=\r\n"; //exercise cl.StringSend("AUTH PLAIN"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("334 \r\n")); //UserID\0UserID\0Password」をBase64でエンコード var str = string.Format("user1\0user1\0user1"); str = Base64.Encode(str + "XXX"); //<=ゴミデータ追加 cl.StringSend(str); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
//[TestCase(InetKind.V6)] public void 複数ログイン(InetKind inetKind) { //setUp var cl1 = CreateClient(inetKind); var cl2 = CreateClient(inetKind); var cl3 = CreateClient(inetKind); var expected = "+OK 2 message (633 octets)\r\n"; //exercise Login("user1", "user1", 0, 0, cl1); Login("user2", "user2", 2, 633, cl2); Login("user3", "user3", 0, 0, cl3); cl2.StringSend("UIDL"); var actual = cl2.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl1.StringSend("QUIT"); cl1.Close(); cl2.StringSend("QUIT"); cl2.Close(); cl3.StringSend("QUIT"); cl3.Close(); }
public void DATAコマンド_正常_メールボックス確認(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Helo(cl); cl.StringSend("MAIL From:1@1"); var l0 = cl.StringRecv(5, this); cl.StringSend("RCPT To:[email protected]"); var l1 = cl.StringRecv(5, this); cl.StringSend("DATA"); var l2 = cl.StringRecv(5, this); cl.StringSend("."); var l3 = cl.StringRecv(5, this); var expected = 1; //exercise var actual = _testServer.GetDf("user1").Length; //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void Dataの動作確認_Bodyの確認(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); var mail1 = new Mail(); mail1.Init2(Encoding.ASCII.GetBytes("1:1\r\n\r\nbody1\r\nbody2\r\n")); //exercise sut.Connect(); sut.Helo(); sut.Mail("1@1"); sut.Rcpt("*****@*****.**"); sut.Data(mail1); sut.Quit(); //verify var mail2 = _testServer.GetMf("user1")[0]; Assert.That(mail2.GetBody(), Is.EqualTo(mail1.GetBody())); //tearDown sut.Dispose(); }
public void 多重ログイン(InetKind inetKind) { //setUp var clDmy = CreateClient(inetKind); Login("user1", "user1", 0, 0, clDmy); var cl = CreateClient(inetKind); var expected = "-ERR Double login\r\n"; //exercise CheckBanner(cl.StringRecv(3, this));//バナーチェック cl.StringSend("user user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Password required for user1.\r\n")); cl.StringSend("PASS user1"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown clDmy.StringSend("QUIT"); clDmy.Close(); cl.StringSend("QUIT"); cl.Close(); }
public void 宛先にメールが到着していることを確認する(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); //exercise sut.Connect(); sut.Helo(); sut.Mail("1@1"); sut.Rcpt("*****@*****.**"); sut.Rcpt("*****@*****.**"); sut.Data(new Mail()); sut.Quit(); //verify //user1及びuser2に1通づつメールが到着していることを確認する var expected = 1; var actual = _testServer.GetDf("user1").Count(); Assert.That(actual, Is.EqualTo(expected)); actual = _testServer.GetDf("user1").Count(); Assert.That(actual, Is.EqualTo(expected)); //tearDown sut.Dispose(); }
public void Dataの動作確認_Bodyの確認_最後が改行で終わらない(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); var mail1 = new Mail(); mail1.Init2(Encoding.ASCII.GetBytes("1:1\r\n\r\nbody1\r\nbody2\r\n123")); //exercise sut.Connect(); sut.Helo(); sut.Mail("1@1"); sut.Rcpt("*****@*****.**"); sut.Data(mail1); sut.Quit(); //verify var mail2 = _testServer.GetMf("user1")[0]; var actual = mail2.GetBody().Length; var expected = mail1.GetBody().Length + 2;//\r\nが追加される Assert.That(actual, Is.EqualTo(expected)); //tearDown sut.Dispose(); }
public void APOP認証成功(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "+OK user1 has 0 message (0 octets).\r\n"; //exercise var challengeStr = Inet.TrimCrlf(cl.StringRecv(3, this)).Split(' ')[5]; var result = (new MD5CryptoServiceProvider()).ComputeHash(Encoding.ASCII.GetBytes(challengeStr + "user1")); var sb = new StringBuilder(); for (int i = 0; i < 16; i++) { sb.Append(string.Format("{0:x2}", result[i])); } cl.StringSend("APOP user1 " + sb.ToString()); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void DATAコマンド_正常_送信(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Helo(cl); //MAIL cl.StringSend("MAIL From:1@1"); cl.StringRecv(3, this); //RCPT cl.StringSend("RCPT To:[email protected]"); cl.StringRecv(3, this); cl.StringSend("DATA"); cl.StringRecv(3, this); var expected = "250 OK\r\n"; //exercise cl.StringSend("."); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public String ToString(InetKind inetKind) { if (inetKind == InetKind.V4) { return(_v4Sv.ToString()); } return(_v6Sv.ToString()); }
private SmtpClient CreateSmtpClient(InetKind inetKind) { if (inetKind == InetKind.V4) { return(new SmtpClient(new Ip(IpKind.V4Localhost), 9025, 3, this)); } return(new SmtpClient(new Ip(IpKind.V6Localhost), 9025, 3, this)); }
private PopClient CreatePopClient(InetKind inetKind) { if (inetKind == InetKind.V4) { return(new PopClient(new Kernel(), new Ip(IpKind.V4Localhost), 9110, 3, this)); } return(new PopClient(new Kernel(), new Ip(IpKind.V6Localhost), 9110, 3, this)); }
//クライアントの生成 SockTcp CreateClient(InetKind inetKind) { const int port = 8825; //ウイルススキャンにかかるため25を避ける if (inetKind == InetKind.V4) { return(Inet.Connect(new Kernel(), new Ip(IpKind.V4Localhost), port, 10, null)); } return(Inet.Connect(new Kernel(), new Ip(IpKind.V6Localhost), port, 10, null)); }
//クライアントの生成 SockTcp CreateClient(InetKind inetKind) { int port = 8110; if (inetKind == InetKind.V4) { return(Inet.Connect(new Kernel(), new Ip(IpKind.V4Localhost), port, 10, null)); } return(Inet.Connect(new Kernel(), new Ip(IpKind.V6Localhost), port, 10, null)); }
public void EHLOコマンド(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise verify Ehlo(cl); //tearDown cl.Close(); }
public void パスワード認証失敗_無効パスワード(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise verify Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK \r\n")); cl.StringSend("user user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Password required for user1.\r\n")); cl.StringSend("PASS xxxx"); Assert.That(cl.StringRecv(3, this), Is.EqualTo(null)); //tearDown cl.Close(); }
public void ログイン成功(InetKind inetKind) { //setUp var sut = CreatePopClient(inetKind); var expected = true; //exercise sut.Connect(); var actual = sut.Login("user1", "user1"); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown sut.Dispose(); }
public void 接続失敗_アドレス間違い(InetKind inetKind, String addr) { //setUp var sut = new PopClient(new Kernel(), new Ip(addr), 9110, 3, this); var expected = false; //exercise var actual = sut.Connect(); //verify Assert.That(actual, Is.EqualTo(expected)); Assert.That(sut.GetLastError(), Is.EqualTo("Faild in PopClient Connect()")); //tearDown sut.Dispose(); }
public void 複数行にわたるReceived行_TAB_に対応(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Helo(cl); cl.StringSend("MAIL From:1@1"); var l0 = cl.StringRecv(5, this); cl.StringSend("RCPT To:[email protected]"); var l1 = cl.StringRecv(5, this); cl.StringSend("DATA"); var l2 = cl.StringRecv(5, this); cl.StringSend("Received: from mail.testdomain.co.jp (unknown [127.0.0.1]) by"); cl.StringRecv(5, this); cl.StringSend(" IMSVA (Postfix) with ESMTP id 1F5C5D0037 for <*****@*****.**>;"); cl.StringRecv(5, this); cl.StringSend(" Tue, 24 Feb 2015 16:28:44 +0900 (JST)"); cl.StringRecv(5, this); cl.StringSend(""); cl.StringRecv(5, this); cl.StringSend("BODY"); cl.StringRecv(5, this); cl.StringSend("."); cl.StringRecv(5, this); var expected = 1; //本文は1行になる //exercise var mail = _testServer.GetMf("user1")[0]; var lines = Inet.GetLines(mail.GetBody()); var actual = lines.Count;//本分の行数を取得 //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void EHLOのパラメータ不足(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var banner = cl.StringRecv(3, this); var expected = "501 EHLO requires domain address\r\n"; //exercise cl.StringSend("EHLO"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void HELOの前にMAILコマンド(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); //exercise Assert.That(sut.Connect(), Is.EqualTo(true)); //Assert.That(sut.Helo(), Is.EqualTo(true)); Assert.That(sut.Mail("1@1"), Is.EqualTo(false)); var expected = "Mail() Status != Transaction"; var actual = sut.GetLastError(); Assert.That(actual, Is.EqualTo(expected)); //tearDown sut.Dispose(); }
public void 正常系(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); //exercise Assert.That(sut.Connect(), Is.EqualTo(true)); Assert.That(sut.Helo(), Is.EqualTo(true)); Assert.That(sut.Mail("1@1"), Is.EqualTo(true)); Assert.That(sut.Rcpt("*****@*****.**"), Is.EqualTo(true)); Assert.That(sut.Data(new Mail()), Is.EqualTo(true)); Assert.That(sut.Quit(), Is.EqualTo(true)); //tearDown sut.Dispose(); }
public void パスワード認証成功(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise verify Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK \r\n")); cl.StringSend("user user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Password required for user1.\r\n")); cl.StringSend("PASS user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK user1 has 0 message (0 octets).\r\n")); cl.StringSend("QUIT"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Pop Server at localhost signing off.\r\n")); //tearDown cl.Close(); }
public void ログイン失敗_パスワードの間違い(InetKind inetKind) { //setUp var sut = CreatePopClient(inetKind); var expected = false; //exercise sut.Connect(); var actual = sut.Login("user1", "xxx"); //verify Assert.That(actual, Is.EqualTo(expected)); Assert.That(sut.GetLastError(), Is.EqualTo("Timeout in PopClient RecvStatus()")); //tearDown sut.Dispose(); }
public void USERの前にPASSコマンドを送るとエラーが返る(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR Invalid command.\r\n"; //exercise CheckBanner(cl.StringRecv(3, this));//バナーチェック cl.StringSend("PASS user1"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void 正常系(InetKind inetKind, SmtpClientAuthKind kind) { //setUp var sut = CreateSmtpClient(inetKind); //exercise Assert.That(sut.Connect(), Is.EqualTo(true)); Assert.That(sut.Helo(), Is.EqualTo(true)); Assert.That(sut.Auth(kind, "user1", "user1"), Is.EqualTo(true)); Assert.That(sut.Mail("1@1"), Is.EqualTo(true)); Assert.That(sut.Rcpt("*****@*****.**"), Is.EqualTo(true)); Assert.That(sut.Data(new Mail()), Is.EqualTo(true)); Assert.That(sut.Quit(), Is.EqualTo(true)); //tearDown sut.Dispose(); }
public void CHPSによるパスワード変更_文字数不足による失敗(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR The number of letter is not enough.\r\n"; //exercise Login("user1", "user1", 0, 0, cl); cl.StringSend("CHPS abc"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void RETRによるメール受信(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("RETR 1"); var actual = Inet.RecvLines(cl, 3, this); //verify Assert.That(actual.Count, Is.EqualTo(13)); Assert.That(actual[0], Is.EqualTo("+OK 317 octets")); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void DELEによるメール削除_失敗(InetKind inetKind) { //setUp var sut = CreatePopClient(inetKind); var expected = false; //exercise sut.Connect(); sut.Login("user1", "user1"); //verify var actual = sut.Dele(0); Assert.That(actual,Is.EqualTo(expected)); Assert.That(sut.GetLastError(), Is.EqualTo("Not Found +OK in PopClient RecvStatus()")); //tearDown sut.Quit(); sut.Dispose(); }
public void RETRによるメール取得(InetKind inetKind) { //setUp var sut = CreatePopClient(inetKind); var expected = true; //exercise sut.Connect(); sut.Login("user2", "user2"); var mail = new Mail(); var actual = sut.Retr(0,mail); //verify Assert.That(actual, Is.EqualTo(expected)); Assert.That(mail.GetBytes().Length, Is.EqualTo(308)); //tearDown sut.Dispose(); }
public void Test(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "{\"code\":500,\"message\":\"Not Implemented []\"}"; //exercise cl.Send(Encoding.ASCII.GetBytes("GET / HTTP/1.1\n\n")); var buf = cl.Recv(3000, 3, this); var str = Encoding.UTF8.GetString(buf); var actual = str.Substring(str.IndexOf("\r\n\r\n") + 4); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void DELEによるメール削除(InetKind inetKind) { //setUp var sut = CreatePopClient(inetKind); //var expected = true; //exercise sut.Connect(); sut.Login("user2", "user2"); //verify sut.Dele(0);//1通削除 Assert.That(CountMail("user2"), Is.EqualTo(2));//QUIT前は2通 sut.Quit(); Assert.That(CountMail("user2"), Is.EqualTo(1));//QUIT後は1通 //tearDown sut.Dispose(); }
public void AUTH_CRAM_MD5認証_異常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Ehlo(cl); String expected = null; //exercise cl.StringSend("AUTH CRAM-MD5"); var recvStr = cl.StringRecv(3, this); recvStr = Inet.TrimCrlf(recvStr); Assert.That(recvStr.Substring(0, 3), Is.EqualTo("334")); var hash = Md5.Hash("user1", Base64.Decode(recvStr.Substring(4))); cl.StringSend(Base64.Encode(string.Format("user1 {0}", hash))+"XXX"); //<=ゴミデータ追加 var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); }
public void APOP認証失敗(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); string expected = null; //exercise var challengeStr = Inet.TrimCrlf(cl.StringRecv(3, this)).Split(' ')[5]; var result = (new MD5CryptoServiceProvider()).ComputeHash(Encoding.ASCII.GetBytes(challengeStr + "user1")); var sb = new StringBuilder(); for (int i = 0; i < 16; i++) { sb.Append(string.Format("{0:x2}", result[i])); } cl.StringSend("APOP user2 " + sb.ToString()); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void Dataの動作確認_Bodyの確認_ドットのみの行を含む(InetKind inetKind) { //setUp var sut = CreateSmtpClient(inetKind); var mail1 = new Mail(); mail1.Init2(Encoding.ASCII.GetBytes("1:1\r\n\r\nbody1\r\nbody2\r\n.\r\n")); //exercise sut.Connect(); sut.Helo(); sut.Mail("1@1"); sut.Rcpt("*****@*****.**"); sut.Data(mail1); sut.Quit(); //verify var mail2 = _testServer.GetMf("user1")[0]; Assert.That(mail2.GetBody(), Is.EqualTo(mail1.GetBody())); //tearDown sut.Dispose(); }
public void DATAコマンド_正常(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); Helo(cl); //MAIL cl.StringSend("MAIL From:1@1"); cl.StringRecv(3, this); //RCPT cl.StringSend("RCPT To:[email protected]"); cl.StringRecv(3, this); var expected = "354 Enter mail,end with \".\" on a line by ltself\r\n"; //exercise cl.StringSend("DATA"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void パスワード認証成功(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise verify CheckBanner(cl.StringRecv(10, this));//バナーチェック cl.StringSend("user user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Password required for user1.\r\n")); cl.StringSend("PASS user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK user1 has 0 message (0 octets).\r\n")); cl.StringSend("QUIT"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Pop Server at localhost signing off.\r\n")); //tearDown cl.Close(); }
public void パスワード認証失敗(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); string expected = null; //exercise CheckBanner(cl.StringRecv(3, this));//バナーチェック cl.StringSend("user user1"); Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK Password required for user1.\r\n")); cl.StringSend("PASS xxx"); var actual = cl.StringRecv(3, this); //verify //パスワードに誤りがある場合、ブルートフォース対策のためしばらくレスポンスが無い Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.Close(); }
public void UIDLコマンドの確認(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "+OK 2 message (633 octets)\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("UIDL"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void UIDL_無効パラメータ_無効データ(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR Message 3 does not exist.\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("UIDL 3"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void 空行を送るとエラーが返る(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR Invalid command.\r\n"; //exercise Login("user1", "user1", 0, 0, cl); cl.StringSend(""); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void STAT_パラメータ有りの場合の確認(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "+OK 2 633\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("STAT 2"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void LISTコマンドの有効パラメータの場合のレスポンス確認(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "+OK 1 317\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("LIST 1"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void 無効なコマンドでエラーが返る(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR Invalid command.\r\n"; //exercise CheckBanner(cl.StringRecv(3, this));//バナーチェック cl.StringSend("xxx"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void TOP_有効パラメータによるデータ取得(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("TOP 1 2"); var actual = Inet.RecvLines(cl, 3, this); //verify Assert.That(actual.Count, Is.EqualTo(13)); Assert.That(actual[0], Is.EqualTo("+OK 317 octets")); Assert.That(actual[5], Is.EqualTo("Message-ID: <*****@*****.**>")); Assert.That(actual[6], Is.EqualTo("From: <1@1>")); Assert.That(actual[12], Is.EqualTo(".")); //tearDown cl.StringSend("QUIT"); cl.Close(); }
public void 複数ログイン(InetKind inetKind) { //setUp var cl1 = CreateClient(inetKind); var cl2 = CreateClient(inetKind); var cl3 = CreateClient(inetKind); var expected = "+OK 2 message (633 octets)\r\n"; //exercise Login("user1", "user1", 0, 0, cl1); Login("user2", "user2", 2, 633, cl2); Login("user3", "user3", 0, 0, cl3); cl2.StringSend("UIDL"); var actual = cl2.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl1.StringSend("QUIT"); cl1.Close(); cl2.StringSend("QUIT"); cl2.Close(); cl3.StringSend("QUIT"); cl3.Close(); }
public void TOP_無効パラメータの確認(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "-ERR Too few arguments for the TOP 1 command.\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("TOP 1"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }
//クライアントの生成 SockTcp CreateClient(InetKind inetKind) { int port = 9110; if (inetKind == InetKind.V4) { return Inet.Connect(new Kernel(), new Ip(IpKind.V4Localhost), port, 10, null); } return Inet.Connect(new Kernel(), new Ip(IpKind.V6Localhost), port, 10, null); }
public void UIDL_パラメータ有り(InetKind inetKind) { //setUp var cl = CreateClient(inetKind); var expected = "+OK 1 bjd.00635026511425808252.000\r\n"; //exercise Login("user2", "user2", 2, 633, cl); cl.StringSend("UIDL 1"); var actual = cl.StringRecv(3, this); //verify Assert.That(actual, Is.EqualTo(expected)); //tearDown cl.StringSend("QUIT"); cl.Close(); }