[TestCase("user1", 1000)]//1秒経過 public void LastLoginによる最終ログイン時間の取得(string user, int waitMsec) { //Ticksは100ナノ秒単位 //10で1マイクロ秒 //10000で1ミリ秒 //10000000で1秒 //setUp var ip = new Ip("10.0.0.1"); var now = DateTime.Now; //ログイン直前の時間計測 sut.Login(user, ip); //ログイン Thread.Sleep(waitMsec); //経過時間 var expected = true; //exercise var dt = sut.LastLogin(ip); //ログイン後の時間計測 var actual = (dt.Ticks - now.Ticks) < 1000000; //10ミリ秒以下の誤差 //verify Assert.That(actual, Is.EqualTo(expected)); }
//認証されているかどうかのチェック public bool Auth(Ip addr) { if (_usePopBeforeSmtp) { var span = DateTime.Now - _mailBox.LastLogin(addr); //最終ログイン時刻からの経過時間を取得 //var sec = (int)span.TotalSeconds;//経過秒 var sec = span.TotalSeconds; //経過秒 if (0 < sec && sec < _timePopBeforeSmtp) { return(true);//認証されている } } return(false); }