Upgraded unit tests to NMock 3.0
git-svn-id: file:///srv/devel/repo-conversion/nusu@214 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
parent
da61476a80
commit
aa5e4d12cc
24 changed files with 284 additions and 320 deletions
|
@ -25,7 +25,7 @@ using System.Threading;
|
|||
#if UNITTEST
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
using NMock;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
@ -85,7 +85,7 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Initialization routine executed before each test is run</summary>
|
||||
[SetUp]
|
||||
public void Setup() {
|
||||
this.mockery = new Mockery();
|
||||
this.mockery = new MockFactory();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that the constructor of the observation wrapper works</summary>
|
||||
|
@ -95,23 +95,23 @@ namespace Nuclex.Support.Tracking {
|
|||
Transaction.EndedDummy
|
||||
);
|
||||
|
||||
IObservationSubscriber subscriber = this.mockery.NewMock<IObservationSubscriber>();
|
||||
Mock<IObservationSubscriber> subscriber = this.mockery.CreateMock<IObservationSubscriber>();
|
||||
|
||||
Expect.AtLeast(0).On(subscriber).Method("ProgressUpdated");
|
||||
subscriber.Expects.AtLeast(0).Method(m => m.ProgressUpdated());
|
||||
// This should no be called because otherwise, the 'Ended' event would be raised
|
||||
// to the transaction group before all transactions have been added into
|
||||
// the internal list, leading to an early ending or even multiple endings.
|
||||
Expect.Never.On(subscriber).Method("Ended");
|
||||
subscriber.Expects.No.Method(m => m.Ended());
|
||||
|
||||
using(
|
||||
ObservedWeightedTransaction<Transaction> test =
|
||||
new ObservedWeightedTransaction<Transaction>(
|
||||
testTransaction,
|
||||
new ObservedWeightedTransaction<Transaction>.ReportDelegate(
|
||||
subscriber.ProgressUpdated
|
||||
subscriber.MockObject.ProgressUpdated
|
||||
),
|
||||
new ObservedWeightedTransaction<Transaction>.ReportDelegate(
|
||||
subscriber.Ended
|
||||
subscriber.MockObject.Ended
|
||||
)
|
||||
)
|
||||
) {
|
||||
|
@ -129,20 +129,20 @@ namespace Nuclex.Support.Tracking {
|
|||
new FunkyTransaction()
|
||||
);
|
||||
|
||||
IObservationSubscriber subscriber = this.mockery.NewMock<IObservationSubscriber>();
|
||||
Mock<IObservationSubscriber> subscriber = this.mockery.CreateMock<IObservationSubscriber>();
|
||||
|
||||
Expect.AtLeast(0).On(subscriber).Method("ProgressUpdated");
|
||||
Expect.Once.On(subscriber).Method("Ended");
|
||||
subscriber.Expects.AtLeast(0).Method(m => m.ProgressUpdated());
|
||||
subscriber.Expects.One.Method(m => m.Ended());
|
||||
|
||||
using(
|
||||
ObservedWeightedTransaction<Transaction> test =
|
||||
new ObservedWeightedTransaction<Transaction>(
|
||||
testTransaction,
|
||||
new ObservedWeightedTransaction<Transaction>.ReportDelegate(
|
||||
subscriber.ProgressUpdated
|
||||
subscriber.MockObject.ProgressUpdated
|
||||
),
|
||||
new ObservedWeightedTransaction<Transaction>.ReportDelegate(
|
||||
subscriber.Ended
|
||||
subscriber.MockObject.Ended
|
||||
)
|
||||
)
|
||||
) {
|
||||
|
@ -151,7 +151,7 @@ namespace Nuclex.Support.Tracking {
|
|||
}
|
||||
|
||||
/// <summary>Mock object factory</summary>
|
||||
private Mockery mockery;
|
||||
private MockFactory mockery;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@ using System.Threading;
|
|||
#if UNITTEST
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
using NMock;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
@ -161,28 +161,28 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Initialization routine executed before each test is run</summary>
|
||||
[SetUp]
|
||||
public void Setup() {
|
||||
this.mockery = new Mockery();
|
||||
this.mockery = new MockFactory();
|
||||
}
|
||||
|
||||
/// <summary>Validates that the tracker properly sums the progress</summary>
|
||||
[Test]
|
||||
public void TestSummedProgress() {
|
||||
using(ProgressTracker tracker = new ProgressTracker()) {
|
||||
IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker);
|
||||
Mock<IProgressTrackerSubscriber> mockedSubscriber = mockSubscriber(tracker);
|
||||
|
||||
TestTransaction test1 = new TestTransaction();
|
||||
TestTransaction test2 = new TestTransaction();
|
||||
|
||||
// Step 1
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).Method("IdleStateChanged").WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
// Since the progress is already at 0, these redundant reports are optional
|
||||
Expect.Between(0, 2).On(mockedSubscriber).Method("ProgressChanged").With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f))
|
||||
}
|
||||
mockedSubscriber.Expects.Between(0, 2).Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f))
|
||||
);
|
||||
|
||||
tracker.Track(test1);
|
||||
|
@ -191,11 +191,9 @@ namespace Nuclex.Support.Tracking {
|
|||
|
||||
// Step 2
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).Method("ProgressChanged").With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.25f))
|
||||
}
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.25f))
|
||||
);
|
||||
|
||||
test1.ChangeProgress(0.5f);
|
||||
|
@ -216,27 +214,23 @@ namespace Nuclex.Support.Tracking {
|
|||
[Test]
|
||||
public void TestDelayedRemoval() {
|
||||
using(ProgressTracker tracker = new ProgressTracker()) {
|
||||
IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker);
|
||||
Mock<IProgressTrackerSubscriber> mockedSubscriber = mockSubscriber(tracker);
|
||||
|
||||
TestTransaction test1 = new TestTransaction();
|
||||
TestTransaction test2 = new TestTransaction();
|
||||
|
||||
// Step 1
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("IdleStateChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).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))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.Between(0, 2).Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f))
|
||||
);
|
||||
|
||||
tracker.Track(test1);
|
||||
tracker.Track(test2);
|
||||
|
@ -244,14 +238,10 @@ namespace Nuclex.Support.Tracking {
|
|||
|
||||
// Step 2
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.25f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.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)
|
||||
|
@ -260,14 +250,10 @@ namespace Nuclex.Support.Tracking {
|
|||
|
||||
// Step 3
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.75f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.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,
|
||||
|
@ -277,18 +263,14 @@ namespace Nuclex.Support.Tracking {
|
|||
|
||||
// Step 4
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f))
|
||||
);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("IdleStateChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
test1.End();
|
||||
}
|
||||
|
@ -304,10 +286,14 @@ namespace Nuclex.Support.Tracking {
|
|||
[Test]
|
||||
public void TestSoleEndedTransaction() {
|
||||
using(ProgressTracker tracker = new ProgressTracker()) {
|
||||
IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker);
|
||||
Mock<IProgressTrackerSubscriber> mockedSubscriber = mockSubscriber(tracker);
|
||||
|
||||
Expect.Never.On(mockedSubscriber).Method("IdleStateChanged").WithAnyArguments();
|
||||
Expect.Never.On(mockedSubscriber).Method("ProgressChanged").WithAnyArguments();
|
||||
mockedSubscriber.Expects.No.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
mockedSubscriber.Expects.No.Method(
|
||||
m => m.ProgressChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
tracker.Track(Transaction.EndedDummy);
|
||||
}
|
||||
|
@ -322,56 +308,44 @@ namespace Nuclex.Support.Tracking {
|
|||
[Test]
|
||||
public void TestEndedTransaction() {
|
||||
using(ProgressTracker tracker = new ProgressTracker()) {
|
||||
IProgressTrackerSubscriber mockedSubscriber = mockSubscriber(tracker);
|
||||
Mock<IProgressTrackerSubscriber> mockedSubscriber = mockSubscriber(tracker);
|
||||
|
||||
TestTransaction test1 = new TestTransaction();
|
||||
|
||||
// Step 1
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("IdleStateChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
Expect.Between(0, 1).On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.0f))
|
||||
}
|
||||
);
|
||||
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
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(0.5f))
|
||||
}
|
||||
);
|
||||
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
|
||||
{
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(ProgressTracker)),
|
||||
new ProgressReportEventArgsMatcher(new ProgressReportEventArgs(1.0f))
|
||||
);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("IdleStateChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.IdleStateChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
test1.End();
|
||||
}
|
||||
|
@ -512,21 +486,21 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Mocks a subscriber for the events of a tracker</summary>
|
||||
/// <param name="tracker">Tracker to mock an event subscriber for</param>
|
||||
/// <returns>The mocked event subscriber</returns>
|
||||
private IProgressTrackerSubscriber mockSubscriber(ProgressTracker tracker) {
|
||||
IProgressTrackerSubscriber mockedSubscriber =
|
||||
this.mockery.NewMock<IProgressTrackerSubscriber>();
|
||||
private Mock<IProgressTrackerSubscriber> mockSubscriber(ProgressTracker tracker) {
|
||||
Mock<IProgressTrackerSubscriber> mockedSubscriber =
|
||||
this.mockery.CreateMock<IProgressTrackerSubscriber>();
|
||||
|
||||
tracker.AsyncIdleStateChanged +=
|
||||
new EventHandler<IdleStateEventArgs>(mockedSubscriber.IdleStateChanged);
|
||||
new EventHandler<IdleStateEventArgs>(mockedSubscriber.MockObject.IdleStateChanged);
|
||||
|
||||
tracker.AsyncProgressChanged +=
|
||||
new EventHandler<ProgressReportEventArgs>(mockedSubscriber.ProgressChanged);
|
||||
new EventHandler<ProgressReportEventArgs>(mockedSubscriber.MockObject.ProgressChanged);
|
||||
|
||||
return mockedSubscriber;
|
||||
}
|
||||
|
||||
/// <summary>Mock object factory</summary>
|
||||
private Mockery mockery;
|
||||
private MockFactory mockery;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,6 @@ using System.IO;
|
|||
using Nuclex.Support.Scheduling;
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ using System.IO;
|
|||
using System.Threading;
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
using NMock;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
@ -105,7 +105,7 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Initialization routine executed before each test is run</summary>
|
||||
[SetUp]
|
||||
public void Setup() {
|
||||
this.mockery = new Mockery();
|
||||
this.mockery = new MockFactory();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -128,10 +128,8 @@ namespace Nuclex.Support.Tracking {
|
|||
public void TestEndedEventAfterSubscription() {
|
||||
TestTransaction test = new TestTransaction();
|
||||
|
||||
ITransactionSubscriber mockedSubscriber = mockSubscriber(test);
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("Ended").
|
||||
WithAnyArguments();
|
||||
Mock<ITransactionSubscriber> mockedSubscriber = mockSubscriber(test);
|
||||
mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments();
|
||||
|
||||
test.End();
|
||||
|
||||
|
@ -147,14 +145,12 @@ namespace Nuclex.Support.Tracking {
|
|||
TestTransaction test = new TestTransaction();
|
||||
test.End();
|
||||
|
||||
ITransactionSubscriber mockedSubscriber =
|
||||
this.mockery.NewMock<ITransactionSubscriber>();
|
||||
Mock<ITransactionSubscriber> mockedSubscriber =
|
||||
this.mockery.CreateMock<ITransactionSubscriber>();
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("Ended").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments();
|
||||
|
||||
test.AsyncEnded += new EventHandler(mockedSubscriber.Ended);
|
||||
test.AsyncEnded += new EventHandler(mockedSubscriber.MockObject.Ended);
|
||||
|
||||
this.mockery.VerifyAllExpectationsHaveBeenMet();
|
||||
}
|
||||
|
@ -221,10 +217,10 @@ namespace Nuclex.Support.Tracking {
|
|||
TestTransaction monitored = new TestTransaction();
|
||||
UnsubscribingTransaction test = new UnsubscribingTransaction(monitored);
|
||||
|
||||
ITransactionSubscriber mockedSubscriber = mockSubscriber(monitored);
|
||||
Mock<ITransactionSubscriber> mockedSubscriber = mockSubscriber(monitored);
|
||||
|
||||
try {
|
||||
Expect.Once.On(mockedSubscriber).Method("Ended").WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(m => m.Ended(null, null)).WithAnyArguments();
|
||||
monitored.End();
|
||||
this.mockery.VerifyAllExpectationsHaveBeenMet();
|
||||
}
|
||||
|
@ -236,17 +232,17 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Mocks a subscriber for the events of a transaction</summary>
|
||||
/// <param name="transaction">Transaction to mock an event subscriber for</param>
|
||||
/// <returns>The mocked event subscriber</returns>
|
||||
private ITransactionSubscriber mockSubscriber(Transaction transaction) {
|
||||
ITransactionSubscriber mockedSubscriber =
|
||||
this.mockery.NewMock<ITransactionSubscriber>();
|
||||
private Mock<ITransactionSubscriber> mockSubscriber(Transaction transaction) {
|
||||
Mock<ITransactionSubscriber> mockedSubscriber =
|
||||
this.mockery.CreateMock<ITransactionSubscriber>();
|
||||
|
||||
transaction.AsyncEnded += new EventHandler(mockedSubscriber.Ended);
|
||||
transaction.AsyncEnded += new EventHandler(mockedSubscriber.MockObject.Ended);
|
||||
|
||||
return mockedSubscriber;
|
||||
}
|
||||
|
||||
/// <summary>Mock object factory</summary>
|
||||
private Mockery mockery;
|
||||
private MockFactory mockery;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ using System.Threading;
|
|||
#if UNITTEST
|
||||
|
||||
using NUnit.Framework;
|
||||
using NMock2;
|
||||
using NMock;
|
||||
|
||||
namespace Nuclex.Support.Tracking {
|
||||
|
||||
|
@ -190,7 +190,7 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Initialization routine executed before each test is run</summary>
|
||||
[SetUp]
|
||||
public void Setup() {
|
||||
this.mockery = new Mockery();
|
||||
this.mockery = new MockFactory();
|
||||
}
|
||||
|
||||
/// <summary>Validates that the transaction group correctly sums the progress</summary>
|
||||
|
@ -202,16 +202,12 @@ namespace Nuclex.Support.Tracking {
|
|||
new TestTransaction[] { new TestTransaction(), new TestTransaction() }
|
||||
)
|
||||
) {
|
||||
ITransactionGroupSubscriber mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
Mock<ITransactionGroupSubscriber> mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.25f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.25f))
|
||||
);
|
||||
|
||||
testTransactionGroup.Children[0].Transaction.ChangeProgress(0.5f);
|
||||
|
||||
|
@ -231,27 +227,19 @@ namespace Nuclex.Support.Tracking {
|
|||
}
|
||||
)
|
||||
) {
|
||||
ITransactionGroupSubscriber mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
Mock<ITransactionGroupSubscriber> mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.5f / 3.0f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.5f / 3.0f))
|
||||
);
|
||||
|
||||
testTransactionGroup.Children[0].Transaction.ChangeProgress(0.5f);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
With(
|
||||
new Matcher[] {
|
||||
new NMock2.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.5f))
|
||||
}
|
||||
);
|
||||
mockedSubscriber.Expects.One.Method(m => m.ProgressChanged(null, null)).With(
|
||||
new NMock.Matchers.TypeMatcher(typeof(TransactionGroup<TestTransaction>)),
|
||||
new ProgressUpdateEventArgsMatcher(new ProgressReportEventArgs(0.5f))
|
||||
);
|
||||
|
||||
testTransactionGroup.Children[1].Transaction.ChangeProgress(0.5f);
|
||||
|
||||
|
@ -271,15 +259,15 @@ namespace Nuclex.Support.Tracking {
|
|||
new TestTransaction[] { new TestTransaction(), new TestTransaction() }
|
||||
)
|
||||
) {
|
||||
ITransactionGroupSubscriber mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
Mock<ITransactionGroupSubscriber> mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
|
||||
Expect.Exactly(2).On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.Exactly(2).Method(
|
||||
m => m.ProgressChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("Ended").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.Ended(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
testTransactionGroup.Children[0].Transaction.End();
|
||||
testTransactionGroup.Children[1].Transaction.End();
|
||||
|
@ -300,15 +288,16 @@ namespace Nuclex.Support.Tracking {
|
|||
new TestTransaction[] { new TestTransaction() }
|
||||
)
|
||||
) {
|
||||
ITransactionGroupSubscriber mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
Mock<ITransactionGroupSubscriber> mockedSubscriber = mockSubscriber(testTransactionGroup);
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("ProgressChanged").
|
||||
WithAnyArguments();
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.ProgressChanged(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
mockedSubscriber.Expects.One.Method(
|
||||
m => m.Ended(null, null)
|
||||
).WithAnyArguments();
|
||||
|
||||
Expect.Once.On(mockedSubscriber).
|
||||
Method("Ended").
|
||||
WithAnyArguments();
|
||||
|
||||
testTransactionGroup.Children[0].Transaction.End();
|
||||
|
||||
|
@ -376,19 +365,19 @@ namespace Nuclex.Support.Tracking {
|
|||
/// <summary>Mocks a subscriber for the events of a transaction</summary>
|
||||
/// <param name="transaction">Transaction to mock an event subscriber for</param>
|
||||
/// <returns>The mocked event subscriber</returns>
|
||||
private ITransactionGroupSubscriber mockSubscriber(Transaction transaction) {
|
||||
ITransactionGroupSubscriber mockedSubscriber =
|
||||
this.mockery.NewMock<ITransactionGroupSubscriber>();
|
||||
private Mock<ITransactionGroupSubscriber> mockSubscriber(Transaction transaction) {
|
||||
Mock<ITransactionGroupSubscriber> mockedSubscriber =
|
||||
this.mockery.CreateMock<ITransactionGroupSubscriber>();
|
||||
|
||||
transaction.AsyncEnded += new EventHandler(mockedSubscriber.Ended);
|
||||
transaction.AsyncEnded += new EventHandler(mockedSubscriber.MockObject.Ended);
|
||||
(transaction as IProgressReporter).AsyncProgressChanged +=
|
||||
new EventHandler<ProgressReportEventArgs>(mockedSubscriber.ProgressChanged);
|
||||
new EventHandler<ProgressReportEventArgs>(mockedSubscriber.MockObject.ProgressChanged);
|
||||
|
||||
return mockedSubscriber;
|
||||
}
|
||||
|
||||
/// <summary>Mock object factory</summary>
|
||||
private Mockery mockery;
|
||||
private MockFactory mockery;
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue