Moved signal interfaces inside records

This commit is contained in:
Michael Schimmel
2025-06-05 23:27:48 +02:00
parent 7ba42b0c7c
commit a57b2d50e4
15 changed files with 316 additions and 313 deletions
+35 -35
View File
@@ -24,7 +24,7 @@ type
TTestMycDirtyFlag = class(TObject)
private
// Helper to create a dirty flag and optionally reset it for a clean initial state
function CreateAndPrepareDirtyFlag(StartDirty: Boolean = True): IMycFlag;
function CreateAndPrepareDirtyFlag(StartDirty: Boolean = True): TFlag.IFlag;
public
[Setup]
procedure Setup;
@@ -103,7 +103,7 @@ end;
{ TTestMycDirtyFlag }
function TTestMycDirtyFlag.CreateAndPrepareDirtyFlag(StartDirty: Boolean = True): IMycFlag;
function TTestMycDirtyFlag.CreateAndPrepareDirtyFlag(StartDirty: Boolean = True): TFlag.IFlag;
begin
Result := TFlag.CreateFlag; // Initially dirty
if not StartDirty then
@@ -125,7 +125,7 @@ end;
procedure TTestMycDirtyFlag.TestCreate_InitialStateIsDirty;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
begin
dirtyFlag := TFlag.CreateFlag;
Assert.IsTrue(dirtyFlag.State.IsSet, 'Newly created dirty flag should be IsSet (dirty).');
@@ -133,7 +133,7 @@ end;
procedure TTestMycDirtyFlag.TestReset_FromDirtyState_BecomesCleanAndReturnsTrue;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
resetResult: Boolean;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(True); // Start dirty
@@ -146,7 +146,7 @@ end;
procedure TTestMycDirtyFlag.TestReset_FromCleanState_StaysCleanAndReturnsFalse;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
resetResult: Boolean;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
@@ -159,7 +159,7 @@ end;
procedure TTestMycDirtyFlag.TestNotify_OnCleanFlag_SetsDirtyAndReturnsTrue;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
notifyResult: Boolean;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
@@ -172,7 +172,7 @@ end;
procedure TTestMycDirtyFlag.TestNotify_OnDirtyFlag_StaysDirtyAndReturnsFalse;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
notifyResult: Boolean;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(True); // Start dirty
@@ -187,9 +187,9 @@ end;
procedure TTestMycDirtyFlag.TestSubscribe_ToAlreadyDirtyFlag_NotifiesSubscriberImmediately;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(True); // Start dirty
subscriber := TMockSubscriber.Create;
@@ -202,9 +202,9 @@ end;
procedure TTestMycDirtyFlag.TestSubscribe_ToCleanFlag_DoesNotNotifySubscriberImmediately;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
subscriber := TMockSubscriber.Create;
@@ -217,9 +217,9 @@ end;
procedure TTestMycDirtyFlag.TestSubscriber_Notified_WhenFlagTransitionsToDirty;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
subscriber := TMockSubscriber.Create;
@@ -234,9 +234,9 @@ end;
procedure TTestMycDirtyFlag.TestSubscriber_NotNotified_WhenSettingAlreadyDirtyFlagViaNotify;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(True); // Start dirty
subscriber := TMockSubscriber.Create;
@@ -251,9 +251,9 @@ end;
procedure TTestMycDirtyFlag.TestSubscriber_NotNotified_ByResetAction;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(True); // Start dirty
subscriber := TMockSubscriber.Create;
@@ -269,9 +269,9 @@ end;
procedure TTestMycDirtyFlag.TestMultipleSubscribers_Notified_WhenFlagTransitionsToDirty;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
sub1, sub2: TMockSubscriber;
subscription1, subscription2: TSubscription;
subscription1, subscription2: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
sub1 := TMockSubscriber.Create;
@@ -287,9 +287,9 @@ end;
procedure TTestMycDirtyFlag.TestUnsubscribe_SubscriberNotNotified;
var
dirtyFlag: IMycFlag;
dirtyFlag: TFlag.IFlag;
subscriber: TMockSubscriber;
subscription: TSubscription;
subscription: TSignal.TSubscription;
begin
dirtyFlag := CreateAndPrepareDirtyFlag(False); // Start clean
subscriber := TMockSubscriber.Create;
@@ -308,9 +308,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_Notifies_B_SimplePropagation;
var
flagA, flagB: IMycFlag;
flagA, flagB: TFlag.IFlag;
subToB: TMockSubscriber;
subscriptionA_B, subscriptionMock_B: TSubscription;
subscriptionA_B, subscriptionMock_B: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False); // A starts clean
flagB := CreateAndPrepareDirtyFlag(False); // B starts clean
@@ -328,9 +328,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_Notifies_B_Notifies_C_SimplePropagation;
var
flagA, flagB, flagC: IMycFlag;
flagA, flagB, flagC: TFlag.IFlag;
subToC: TMockSubscriber;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSubscription;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);
@@ -353,9 +353,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_B_ResetB_RetriggerA_BStaysCleanIfANotChanged;
var
flagA, flagB: IMycFlag;
flagA, flagB: TFlag.IFlag;
subToB: TMockSubscriber;
subscriptionA_B, subscriptionMock_B: TSubscription;
subscriptionA_B, subscriptionMock_B: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);
@@ -382,9 +382,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_B_ResetA_ThenTriggerA_FullPropagationToB;
var
flagA, flagB: IMycFlag;
flagA, flagB: TFlag.IFlag;
subToB: TMockSubscriber;
subscriptionA_B, subscriptionMock_B: TSubscription;
subscriptionA_B, subscriptionMock_B: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);
@@ -411,9 +411,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_B_C_IntermediateBReset_RetriggerA_PropagatesToC;
var
flagA, flagB, flagC: IMycFlag;
flagA, flagB, flagC: TFlag.IFlag;
subToC: TMockSubscriber;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSubscription;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);
@@ -450,9 +450,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_B_C_AllReset_RetriggerA_FullPropagation;
var
flagA, flagB, flagC: IMycFlag;
flagA, flagB, flagC: TFlag.IFlag;
subToC: TMockSubscriber;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSubscription;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);
@@ -490,9 +490,9 @@ end;
procedure TTestMycDirtyFlag.TestChain_A_B_C_TriggerA_ResetA_TriggerA_EnsureCNotifiedCorrectly;
var
flagA, flagB, flagC: IMycFlag;
flagA, flagB, flagC: TFlag.IFlag;
subToC: TMockSubscriber;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSubscription;
subscriptionB_A, subscriptionC_B, subscriptionMock_C: TSignal.TSubscription;
begin
flagA := CreateAndPrepareDirtyFlag(False);
flagB := CreateAndPrepareDirtyFlag(False);