public void TestThrowOnRepeatedlyEndedTransaction() { TestTransaction test = new TestTransaction(); test.End(); Assert.Throws <InvalidOperationException>( delegate() { test.End(); } ); }
public void TestEndedTransaction() { using (ProgressTracker tracker = new ProgressTracker()) { IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker); TestTransaction test1 = new TestTransaction(); // Step 1 { Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); Expect.Between(0, 1).On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f)) } ); tracker.Track(test1); } // Step 2 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.5f)) } ); tracker.Track(Transaction.EndedDummy); } // Step 3 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f)) } ); Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); test1.End(); } } this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestWaitUnlimited() { TestTransaction test = new TestTransaction(); // We can only do a positive test here without slowing down the unit test ThreadPool.QueueUserWorkItem( (WaitCallback) delegate(object state) { Thread.Sleep(1); test.End(); } ); test.Wait(); }
public void TestEndedEventAfterSubscription() { TestTransaction test = new TestTransaction(); Mock <ITransactionSubscriber> mockedSubscriber = mockSubscriber(test); mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments(); test.End(); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestProvokedDeadlock() { using (ProgressTracker tracker = new ProgressTracker()) { TestTransaction test1 = new TestTransaction(); tracker.Track(test1); tracker.AsyncIdleStateChanged += (EventHandler <IdleStateEventArgs>) delegate(object sender, IdleStateEventArgs arguments) { tracker.Track(Transaction.EndedDummy); }; test1.End(); } }
public void TestWaitTimeSpan() { TestTransaction test = new TestTransaction(); // Wait 0 milliseconds for the transaction to end. Of course, this will not happen, // so a timeout occurs and false is returned Assert.IsFalse(test.Wait(TimeSpan.Zero)); test.End(); // Wait another 0 milliseconds for the transaction to end. Now it has already ended // and no timeout will occur, even with a wait time of 0 milliseconds. Assert.IsTrue(test.Wait(TimeSpan.Zero)); }
public void TestEndedEventAfterSubscription() { TestTransaction test = new TestTransaction(); ITransactionSubscriber mockedSubscriber = mockSubscriber(test); Expect.Once.On(mockedSubscriber). Method("Ended"). WithAnyArguments(); test.End(); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestEndedEventDuingSubscription() { TestTransaction test = new TestTransaction(); test.End(); Mock <ITransactionSubscriber> mockedSubscriber = this.mockery.CreateMock <ITransactionSubscriber>(); mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments(); test.AsyncEnded += new EventHandler(mockedSubscriber.MockObject.Ended); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestEndedTransaction() { using (ProgressTracker tracker = new ProgressTracker()) { Mock <IProgressTrackerSubscriber> mockedSubscriber = mockSubscriber(tracker); TestTransaction test1 = new TestTransaction(); // Step 1 { mockedSubscriber.Expects.One.Method( m => m.IdleStateChanged(null, null) ).WithAnyArguments(); mockedSubscriber.Expects.AtMost(1).Method(m => m.ProgressChanged(null, null)).With( new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f)) ); tracker.Track(test1); } // Step 2 { mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With( new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.5f)) ); tracker.Track(Transaction.EndedDummy); } // Step 3 { mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With( new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f)) ); mockedSubscriber.Expects.One.Method( m => m.IdleStateChanged(null, null) ).WithAnyArguments(); test1.End(); } } this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestUnsubscribeInEndedCallback() { TestTransaction monitored = new TestTransaction(); UnsubscribingTransaction test = new UnsubscribingTransaction(monitored); Mock <ITransactionSubscriber> mockedSubscriber = mockSubscriber(monitored); try { mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments(); monitored.End(); this.mockery.VerifyAllExpectationsHaveBeenMet(); } finally { test.End(); } }
public void TestUnsubscribeInEndedCallback() { TestTransaction monitored = new TestTransaction(); UnsubscribingTransaction test = new UnsubscribingTransaction(monitored); ITransactionSubscriber mockedSubscriber = mockSubscriber(monitored); try { Expect.Once.On(mockedSubscriber).Method("Ended").WithAnyArguments(); monitored.End(); this.mockery.VerifyAllExpectationsHaveBeenMet(); } finally { test.End(); } }
public void TestIdleWithAutoRemoval() { using (ProgressTracker tracker = new ProgressTracker()) { TestTransaction test1 = new TestTransaction(); Assert.IsTrue(tracker.Idle); tracker.Track(test1); Assert.IsFalse(tracker.Idle); test1.End(); Assert.IsTrue(tracker.Idle); } }
public void TestEndedEventDuingSubscription() { TestTransaction test = new TestTransaction(); test.End(); ITransactionSubscriber mockedSubscriber = this.mockery.NewMock <ITransactionSubscriber>(); Expect.Once.On(mockedSubscriber). Method("Ended"). WithAnyArguments(); test.AsyncEnded += new EventHandler(mockedSubscriber.Ended); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestWaitUnlimited() { TestTransaction test = new TestTransaction(); // We can only do a positive test here without slowing down the unit test ThreadPool.QueueUserWorkItem( (WaitCallback)delegate(object state) { Thread.Sleep(1); test.End(); } ); test.Wait(); }
public void TestThrowOnRepeatedlyEndedTransaction() { TestTransaction test = new TestTransaction(); test.End(); Assert.Throws<InvalidOperationException>( delegate() { test.End(); } ); }
public void TestDelayedRemoval() { using (ProgressTracker tracker = new ProgressTracker()) { IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker); TestTransaction test1 = new TestTransaction(); TestTransaction test2 = new TestTransaction(); // Step 1 { Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); // This is optional. The tracker's progress is currently 0, so there's no need // to send out superfluous progress reports. Expect.Between(0, 2).On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f)) } ); tracker.Track(test1); tracker.Track(test2); } // Step 2 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.25f)) } ); // Total progress should be 0.25 after this call (two transactions, one with // 0% progress and one with 50% progress) test1.ChangeProgress(0.5f); } // Step 3 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.75f)) } ); // Total progress should be 0.75 after this call (one transaction at 100%, // the other one at 50%). If the second transaction would be removed by the tracker, // (which would be inappropriate!) the progress would falsely jump to 0.5 instead. test2.End(); } // Step 4 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f)) } ); Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); test1.End(); } } this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestEndedEventDuingSubscription() { TestTransaction test = new TestTransaction(); test.End(); ITransactionSubscriber mockedSubscriber = this.mockery.NewMock<ITransactionSubscriber>(); Expect.Once.On(mockedSubscriber). Method("Ended"). WithAnyArguments(); test.AsyncEnded += new EventHandler(mockedSubscriber.Ended); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestIdleWithAutoRemoval() { using(ProgressTracker tracker = new ProgressTracker()) { TestTransaction test1 = new TestTransaction(); Assert.IsTrue(tracker.Idle); tracker.Track(test1); Assert.IsFalse(tracker.Idle); test1.End(); Assert.IsTrue(tracker.Idle); } }
public void TestProvokedDeadlock() { using(ProgressTracker tracker = new ProgressTracker()) { TestTransaction test1 = new TestTransaction(); tracker.Track(test1); tracker.AsyncIdleStateChanged += (EventHandler<IdleStateEventArgs>)delegate(object sender, IdleStateEventArgs arguments) { tracker.Track(Transaction.EndedDummy); }; test1.End(); } }
public void TestEndedTransaction() { using(ProgressTracker tracker = new ProgressTracker()) { IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker); TestTransaction test1 = new TestTransaction(); // Step 1 { Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); Expect.Between(0, 1).On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f)) } ); tracker.Track(test1); } // Step 2 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.5f)) } ); tracker.Track(Transaction.EndedDummy); } // Step 3 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f)) } ); Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); test1.End(); } } this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestDelayedRemoval() { using(ProgressTracker tracker = new ProgressTracker()) { IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker); TestTransaction test1 = new TestTransaction(); TestTransaction test2 = new TestTransaction(); // Step 1 { Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); // This is optional. The tracker's progress is currently 0, so there's no need // to send out superfluous progress reports. Expect.Between(0, 2).On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f)) } ); tracker.Track(test1); tracker.Track(test2); } // Step 2 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.25f)) } ); // Total progress should be 0.25 after this call (two transactions, one with // 0% progress and one with 50% progress) test1.ChangeProgress(0.5f); } // Step 3 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.75f)) } ); // Total progress should be 0.75 after this call (one transaction at 100%, // the other one at 50%). If the second transaction would be removed by the tracker, // (which would be inappropriate!) the progress would falsely jump to 0.5 instead. test2.End(); } // Step 4 { Expect.Once.On(mockedSubscriber). Method("ProgressChanged"). With( new Matcher[] { new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)), new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f)) } ); Expect.Once.On(mockedSubscriber). Method("IdleStateChanged"). WithAnyArguments(); test1.End(); } } this.mockery.VerifyAllExpectationsHaveBeenMet(); }