|
2 | 2 | Class constructor() |
3 | 3 |
|
4 | 4 | Function test_error_handler_initialization($t : cs:C1710.Testing) |
5 | | - |
6 | | - // Verify that Storage.testErrors exists and can be initialized |
7 | | - If (Storage:C1525.testErrors=Null:C1517) |
8 | | - Use (Storage:C1525) |
9 | | - Storage:C1525.testErrors:=New shared collection:C1527 |
10 | | - End use |
11 | | - End if |
12 | | - |
13 | | - $t.assert.isNotNull($t; Storage:C1525.testErrors; "Error storage should be initialized") |
14 | | - $t.assert.areEqual($t; Is collection:K8:32; Value type:C1509(Storage:C1525.testErrors); "Error storage should be a collection") |
| 5 | + |
| 6 | + var $runner : cs:C1710.TestRunner |
| 7 | + $runner:=cs:C1710.TestRunner.new() |
| 8 | + $runner._prepareErrorHandlingStorage() |
| 9 | + |
| 10 | + // Verify that Storage.testErrors exists and can be initialized |
| 11 | + $t.assert.isNotNull($t; Storage:C1525.testErrors; "Error storage should be initialized") |
| 12 | + $t.assert.areEqual($t; Is collection:K8:32; Value type:C1509(Storage:C1525.testErrors); "Error storage should be a collection") |
| 13 | + |
| 14 | + // Ensure forwarding state is set up |
| 15 | + $t.assert.isNotNull($t; Storage:C1525.testErrorHandlerForwarding; "Forwarding registry should be initialized") |
| 16 | + $t.assert.areEqual($t; Is object:K8:27; Value type:C1509(Storage:C1525.testErrorHandlerForwarding); "Forwarding registry should be an object") |
| 17 | + |
| 18 | + Use (Storage:C1525.testErrorHandlerForwarding) |
| 19 | + $t.assert.isNotNull($t; Storage:C1525.testErrorHandlerForwarding.local; "Local forwarding map should exist") |
| 20 | + $t.assert.areEqual($t; Is object:K8:27; Value type:C1509(Storage:C1525.testErrorHandlerForwarding.local); "Local forwarding map should be an object") |
| 21 | + $t.assert.isNotNull($t; Storage:C1525.testErrorHandlerForwarding.global; "Global forwarding state should exist") |
| 22 | + $t.assert.areEqual($t; Is object:K8:27; Value type:C1509(Storage:C1525.testErrorHandlerForwarding.global); "Global forwarding state should be an object") |
| 23 | + End use |
15 | 24 |
|
16 | 25 | Function test_error_information_structure($t : cs:C1710.Testing) |
17 | 26 |
|
@@ -101,18 +110,66 @@ Function test_register_process_tracking($t : cs:C1710.Testing) |
101 | 110 | var $processNumber : Integer |
102 | 111 | $processNumber:=98765 |
103 | 112 |
|
104 | | - TestErrorHandlerRegisterProcess($processNumber) |
| 113 | + var $registerOptions : Object |
| 114 | + $registerOptions:=New object:C1471(\ |
| 115 | + "previousLocalHandler"; "LegacyLocalHandler"; \ |
| 116 | + "forwardLocal"; True:C214; \ |
| 117 | + "previousGlobalHandler"; "LegacyGlobalHandler"; \ |
| 118 | + "forwardGlobal"; True:C214\ |
| 119 | + ) |
| 120 | + |
| 121 | + TestErrorHandlerRegisterProcess($processNumber; $registerOptions) |
105 | 122 |
|
106 | 123 | Use (Storage:C1525.testErrorHandlerProcesses) |
107 | 124 | $t.assert.isTrue($t; Storage:C1525.testErrorHandlerProcesses.indexOf($processNumber)>=0; "Should register process for local error tracking") |
108 | 125 | End use |
109 | 126 |
|
110 | | - TestErrorHandlerUnregister($processNumber) |
| 127 | + Use (Storage:C1525.testErrorHandlerForwarding) |
| 128 | + var $localEntry : Object |
| 129 | + $localEntry:=Storage:C1525.testErrorHandlerForwarding.local[String:C10($processNumber)] |
| 130 | + $t.assert.isNotNull($t; $localEntry; "Should create local forwarding entry") |
| 131 | + If ($localEntry#Null:C1517) |
| 132 | + $t.assert.areEqual($t; "LegacyLocalHandler"; $localEntry.handler; "Should track previous local handler") |
| 133 | + $t.assert.isTrue($t; $localEntry.shouldForward; "Local forwarding should be enabled") |
| 134 | + End if |
| 135 | + |
| 136 | + var $globalState : Object |
| 137 | + $globalState:=Storage:C1525.testErrorHandlerForwarding.global |
| 138 | + $t.assert.isNotNull($t; $globalState; "Should maintain global forwarding state") |
| 139 | + If ($globalState#Null:C1517) |
| 140 | + $t.assert.areEqual($t; "LegacyGlobalHandler"; $globalState.handler; "Should track previous global handler") |
| 141 | + $t.assert.isTrue($t; $globalState.shouldForward; "Global forwarding should be enabled") |
| 142 | + $t.assert.areEqual($t; $processNumber; $globalState.installedProcess; "Should record installing process") |
| 143 | + End if |
| 144 | + End use |
| 145 | + |
| 146 | + var $unregisterOptions : Object |
| 147 | + $unregisterOptions:=New object:C1471(\ |
| 148 | + "clearGlobal"; True:C214\ |
| 149 | + ) |
| 150 | + |
| 151 | + TestErrorHandlerUnregister($processNumber; $unregisterOptions) |
111 | 152 |
|
112 | 153 | Use (Storage:C1525.testErrorHandlerProcesses) |
113 | 154 | $t.assert.isFalse($t; Storage:C1525.testErrorHandlerProcesses.indexOf($processNumber)>=0; "Should remove process from tracking after unregister") |
114 | 155 | End use |
115 | 156 |
|
| 157 | + Use (Storage:C1525.testErrorHandlerForwarding) |
| 158 | + var $localEntryAfter : Object |
| 159 | + $localEntryAfter:=Storage:C1525.testErrorHandlerForwarding.local[String:C10($processNumber)] |
| 160 | + If ($localEntryAfter#Null:C1517) |
| 161 | + $t.assert.areEqual($t; ""; $localEntryAfter.handler; "Local handler reference should be cleared on unregister") |
| 162 | + $t.assert.isFalse($t; $localEntryAfter.shouldForward; "Local forwarding should be disabled on unregister") |
| 163 | + End if |
| 164 | + |
| 165 | + var $globalStateAfter : Object |
| 166 | + $globalStateAfter:=Storage:C1525.testErrorHandlerForwarding.global |
| 167 | + If ($globalStateAfter#Null:C1517) |
| 168 | + $t.assert.isFalse($t; $globalStateAfter.shouldForward; "Global forwarding should be disabled after unregister") |
| 169 | + $t.assert.areEqual($t; 0; $globalStateAfter.installedProcess; "Global installer should reset after unregister") |
| 170 | + End if |
| 171 | + End use |
| 172 | + |
116 | 173 | Function test_testing_context_properties($t : cs:C1710.Testing) |
117 | 174 |
|
118 | 175 | // Verify the testing context has expected properties |
|
0 commit comments