public void Should_CallAbort_When_Dispose() { WuStateAsyncJobProxy state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 0); state.Dispose(); Assert.IsTrue(state.AbortCalled); }
public void Should_NotAllowReEnter_When_WuStateAsyncJobIsDisposed() { WuStateAsyncJob state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 1); state.Dispose(); state.EnterState(new WuStateReady()); }
public void Should_CallProgressCallback_When_NewProgessNotEqualsOldProgress() { int progressChangedCallbackCounter = 0; WuStateAsyncJob.ProgressChangedCallback progressCallback = (j, cu, ci, co, p) => { progressChangedCallbackCounter++; }; WuStateAsyncJob.TimeoutCallback timeoutCallback = (j, t) => { Assert.Fail("Should not be called."); }; UpdateFake update1 = new UpdateFake("update1"); UpdateFake update2 = new UpdateFake("update2"); Tuple <IUpdate, int, int, int>[] progessChanges = { new Tuple <IUpdate, int, int, int>(update1, 0, 1, 0), new Tuple <IUpdate, int, int, int>(update1, 0, 1, 100), new Tuple <IUpdate, int, int, int>(update1, 1, 1, 100), new Tuple <IUpdate, int, int, int>(update2, 1, 1, 100) }; using (var asyncJob = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 10000, timeoutCallback, progressCallback)) { foreach (var pc in progessChanges) { asyncJob.SimulateOnProgressNow(pc.Item1, pc.Item2, pc.Item3, pc.Item4); } } Assert.AreEqual(progessChanges.Length, progressChangedCallbackCounter); }
public void Should_CallAbort_When_CallLeaveState() { using (var state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 0)) { state.LeaveState(); Assert.IsTrue(state.AbortCalled); } }
public void Should_ReturnTrue_When_CallIsDisposedAfterDispose() { WuStateAsyncJob state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 0); Assert.IsFalse(state.IsDisposed); state.Dispose(); Assert.IsTrue(state.IsDisposed); }
public void Should_UpdateRunningIndicator_When_StartAndAbortTimer() { using (WuStateAsyncJobProxy state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 10000)) { Assert.IsFalse(state.IsRunning); state.EnterState(new WuStateReady()); Assert.IsTrue(state.IsRunning); state.Abort(); Assert.IsFalse(state.IsRunning); } }
public void Should_ContainSpecifiedTimeOut_When_CreateWuStateAsyncJob() { int timeout = 34; WuStateAsyncJob.ProgressChangedCallback progressCallback = (a, b, c, d, e) => { }; WuStateAsyncJob.TimeoutCallback timeoutCallback = (a, b) => { }; using (var state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", timeout, timeoutCallback, progressCallback)) { Assert.AreEqual(timeout, state.TimeoutSec); Assert.AreSame(progressCallback, state.ProgressChangedCallbackDelegate); Assert.AreSame(timeoutCallback, state.TimeoutCallbackDelegate); } }
public void Should_CallRequestAbort_When_AbortJob() { var job = MoqFactory.Create <WuApiJobAdapter>(MockBehavior.Loose); job.Setup(j => j.RequestAbort()); using (WuStateAsyncJobProxy state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 10000)) { state.Job = job.Object; state.EnterState(new WuStateReady()); state.Abort(); job.Verify(j => j.RequestAbort(), Times.Once); } }
public void Should_CallOnTimeout_When_TimeRunsOut() { int timeout = 1; WuStateAsyncJobProxy state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", timeout); state.EnterState(new WuStateReady()); if (!state.OnTimeoutSignal.WaitOne((int)(timeout * 1000 * 1.5))) { Assert.Fail($"OnTimeout was not called"); } Assert.IsFalse(state.IsRunning); state.Dispose(); }
public void Should_NotAllowNullTimeoutDelegate_When_CreateWuStateAsyncJob() { WuStateAsyncJob state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", 1, null, null); }
public void Should_NotAllowNegativeTimeout_When_CreateWuStateAsyncJob() { WuStateAsyncJob state = new WuStateAsyncJobProxy(WuStateId.Downloading, "name", -1); }