public async Task MyTimeoutClass_FailedGet_PropagatesFailure() { var stub = new FailureHttpServiceStub(); var my = new MyTimeOutClass(stub); await ThrowsExceptionAsync <HttpRequestException>(async() => { await my.GetStringWithTimeout("http://www.example.com/").SingleAsync(); }); }
public async Task MyTimeoutClass_SuccessfulGet_ReturnsResult() { var stub = new SuccessHttpServiceStub(); var my = new MyTimeOutClass(stub); var result = await my.GetStringWithTimeout("http://www.example.com/").SingleAsync(); var result2 = await Observable.Return("stub").Timeout(TimeSpan.FromSeconds(1)).SingleAsync();//同上封装后的代码 Assert.AreEqual("stub", result); }
public void MyTimeoutClass_SuccessfulGetShortDelay_ReturnsResult() { var scheduler = new TestScheduler(); var stub = new SuccessHttpServiceStub2() { Scheduler = scheduler, Delay = TimeSpan.FromSeconds(0.5) }; var my = new MyTimeOutClass(stub); string result = null; my.GetStringWithTimeout("http://www.example.com/", scheduler).Subscribe(r => { result = r; }); scheduler.Start(); Assert.AreEqual("stub", result); }