Code formatting
This commit is contained in:
@@ -127,7 +127,8 @@ begin
|
||||
// Acquire lock before calling Advise
|
||||
FOwnerFixture.FNotifier.Lock;
|
||||
try
|
||||
{var tag :=} FOwnerFixture.FNotifier.Advise(FReceiversToAdd[i]);
|
||||
{var tag :=}
|
||||
FOwnerFixture.FNotifier.Advise(FReceiversToAdd[i]);
|
||||
// The 'tag' could be used here if necessary for other test scenarios
|
||||
finally
|
||||
// Definitely release lock in the finally block
|
||||
@@ -168,7 +169,7 @@ begin
|
||||
try
|
||||
// UnadviseAll should be safe if the IsFinalized guard is present
|
||||
// and the FFirst state is not pathological.
|
||||
// if not FNotifier.IsFinalized then
|
||||
// if not FNotifier.IsFinalized then
|
||||
begin
|
||||
FNotifier.UnadviseAll;
|
||||
end;
|
||||
@@ -206,7 +207,7 @@ var
|
||||
currentNotifyCount: Integer;
|
||||
receiver: IMyTestInterface;
|
||||
LThreadError: Exception; // For safe error message handling
|
||||
LMessage: string; // For safe error message handling
|
||||
LMessage: string; // For safe error message handling
|
||||
begin
|
||||
totalAdvisedExpected := NumThreads * ItemsPerThread;
|
||||
SetLength(threads, NumThreads);
|
||||
@@ -255,18 +256,24 @@ begin
|
||||
FNotifier.Lock;
|
||||
try
|
||||
FNotifier.Notify(
|
||||
function(Item: IMyTestInterface): Boolean
|
||||
begin
|
||||
Inc(currentNotifyCount);
|
||||
Result := True; // Keep item in the Notifier
|
||||
end
|
||||
function(Item: IMyTestInterface): Boolean
|
||||
begin
|
||||
Inc(currentNotifyCount);
|
||||
Result := True; // Keep item in the Notifier
|
||||
end
|
||||
);
|
||||
finally
|
||||
FNotifier.Release;
|
||||
end;
|
||||
Assert.AreEqual(totalAdvisedExpected, currentNotifyCount,
|
||||
'The number of items in the Notifier after all Advise operations (' + currentNotifyCount.ToString +
|
||||
') does not match the expected number (' + totalAdvisedExpected.ToString + ').');
|
||||
Assert.AreEqual(
|
||||
totalAdvisedExpected,
|
||||
currentNotifyCount,
|
||||
'The number of items in the Notifier after all Advise operations ('
|
||||
+ currentNotifyCount.ToString
|
||||
+ ') does not match the expected number ('
|
||||
+ totalAdvisedExpected.ToString
|
||||
+ ').'
|
||||
);
|
||||
|
||||
// 2. Execute UnadviseAll
|
||||
FNotifier.Lock;
|
||||
@@ -281,21 +288,24 @@ begin
|
||||
FNotifier.Lock;
|
||||
try
|
||||
FNotifier.Notify(
|
||||
function(Item: IMyTestInterface): Boolean
|
||||
begin
|
||||
Inc(currentNotifyCount);
|
||||
Result := True;
|
||||
end
|
||||
function(Item: IMyTestInterface): Boolean
|
||||
begin
|
||||
Inc(currentNotifyCount);
|
||||
Result := True;
|
||||
end
|
||||
);
|
||||
finally
|
||||
FNotifier.Release;
|
||||
end;
|
||||
Assert.AreEqual(0, currentNotifyCount,
|
||||
'The Notifier should be empty after UnadviseAll, but still contains ' + currentNotifyCount.ToString + ' items.');
|
||||
Assert.AreEqual(
|
||||
0,
|
||||
currentNotifyCount,
|
||||
'The Notifier should be empty after UnadviseAll, but still contains ' + currentNotifyCount.ToString + ' items.'
|
||||
);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
||||
TDUnitX.RegisterTestFixture(TMycNotifierThreadingTests);
|
||||
TDUnitX.RegisterTestFixture(TMycNotifierThreadingTests);
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user