RBD-MS tSQLt Report

PASSED

179 passed, 0 failed, 179 total

ResultTest
No individual test rows were parsed. See raw output.

Raw Output

(0 rows affected)
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 16:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 16:00:00.000 2026-05-01 18:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 08:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 16:00:00.000               1 2026-05-01 08:00:00.000 2026-05-01 16:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 16:00:00.000 2026-05-01 18:00:00.000               1 2026-05-01 16:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 08:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000                    NULL NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 16:00:00.000               1 2026-05-01 06:00:00.000                    NULL NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 16:00:00.000 2026-05-02 00:00:00.000               1 2026-05-01 06:00:00.000                    NULL NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 16:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 16:00:00.000 2026-05-01 18:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 broken thing                                                                                                                                                                                                                                                     alice                                              2026-05-01 11:00:00.000           5               2             1            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 broken thing                                                                                                                                                                                                                                                     alice                                              2026-05-01 11:00:00.000           5               2             1            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000             999 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000             999 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 10:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 10:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000 2026-05-01 16:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 16:00:00.000 2026-05-01 18:00:00.000               1 2026-05-01 06:00:00.000 2026-05-01 18:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 06:00:00.000 2026-05-01 08:00:00.000               1 2026-05-01 06:00:00.000                    NULL NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
2026-05-01 08:00:00.000                    NULL               1 2026-05-01 06:00:00.000                    NULL NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
Start                   End                     OriginalDelayId OriginalStart           OriginalEnd             Comments                                                                                                                                                                                                                                                         JustifiedByUser                                    JustifiedDatetime       DelayCodeId DelayCategoryId IsDelayManual IsMicroDelay AssetId    
----------------------- ----------------------- --------------- ----------------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- ----------- --------------- ------------- ------------ -----------
2026-05-01 02:00:00.000 2026-05-01 06:00:00.000               1 2026-05-01 02:00:00.000 2026-05-01 06:00:00.000 NULL                                                                                                                                                                                                                                                             NULL                                                                  NULL        NULL            NULL             0            0           1
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3000 IsDefaultArray=0 | Path A: Fresh Removal Success
UpsertTask 100 to 1 pos 1 on May 22 2026  6:00AM by TESTER | LastTaskId=3002 IsDefaultArray=0 | Path B: Correction Success
UpsertTask TO-DEFAULT-ARRAY 100 on May 21 2026  2:30PM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path B: Correction Success
UpsertTask 100 to NULL pos NULL on May 22 2026 12:00PM by CORRECTOR | LastTaskId=3002 IsDefaultArray=0 | Path B: Correction Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | Created PartId=101 | Success
UpsertTask 100 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path A: Fresh Install Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2020 12:00AM by TESTER | Created PartId=101 | Success
UpsertTask 100 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | LastTaskId=NULL IsDefaultArray=NULL | Path A: Fresh Install Success
UpsertTask 100 to 200 pos 9 on May 22 2026  6:00AM by CORRECTOR | LastTaskId=3002 IsDefaultArray=0 | Path B: Correction Success
UpsertTask TO-DEFAULT-ARRAY 100 on May 21 2026  2:30PM by CORRECTOR | LastTaskId=3001 IsDefaultArray=1 | Path B: Correction Success
UpsertTask 100 to 1 pos 1 on May 22 2026  6:00AM by CORRECTOR | LastTaskId=3002 IsDefaultArray=0 | Path B: Correction Success
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3000 IsDefaultArray=0 | Path A: Fresh Removal Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | Created PartId=101 | Success
UpsertTask TO-DEFAULT-ARRAY 100 on May 21 2026  2:30PM by CORRECTOR | LastTaskId=3001 IsDefaultArray=1 | Path B: Correction Success
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3000 IsDefaultArray=0 | Path A: Fresh Removal Success
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2020 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path B: Correction Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | Created PartId=101 | Error: boom from MovePart spy
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2099 12:00AM by TESTER | LastTaskId=NULL IsDefaultArray=NULL | Path A: Fresh Removal Success
UpsertTask 100 to 1 pos 1 on Jun  1 2026 10:30PM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path A: Fresh Install Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | Created PartId=101 | Success
UpsertTask 100 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path A: Fresh Install Success
UpsertTask TO-DEFAULT-ARRAY 100 on Apr  1 2026 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path B: Correction Success
UpsertTask 100 to 1 pos 1 on Jan  1 2020 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path A: Fresh Install Success
UpsertTask CREATE+INSTALL Type=3 Name=Roof #42 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | Created PartId=101 | Success
UpsertTask 100 to 1 pos 1 on Jan  1 2099 12:00AM by TESTER | LastTaskId=3001 IsDefaultArray=1 | Path A: Fresh Install Success
UpsertTask TO-DEFAULT-ARRAY 100 on Jan  1 2020 12:00AM by TESTER | LastTaskId=3000 IsDefaultArray=0 | Path A: Fresh Removal Success
 
+----------------------+
|Test Execution Summary|
+----------------------+
 
|No |Test Case Name                                                                                                       |Dur(ms)|Result |
+---+---------------------------------------------------------------------------------------------------------------------+-------+-------+
|1  |[DEL_GetDelay_Tests].[test IsDelayManual is aliased as IsManual for manual delay]                                    |     66|Success|
|2  |[DEL_GetDelay_Tests].[test returns delay row when DelayId exists]                                                    |     54|Success|
|3  |[DEL_GetDelay_Tests].[test returns empty result set when DelayId does not exist]                                     |     70|Success|
|4  |[DEL_GetDelay_Tests].[test returns NULL End for active delay]                                                        |     78|Success|
|5  |[DEL_GetDelay_Tests].[test returns NULL justification fields for unjustified delay]                                  |     58|Success|
|6  |[DEL_GetDelay_Tests].[test returns only matching delay when multiple delays exist]                                   |   1247|Success|
|7  |[DEL_GetDelay_Tests].[test returns split delay original fields]                                                      |    146|Success|
|8  |[DEL_SpliceDelaysByShiftJob_Tests].[test assigns ShiftId via GetShiftId for new slices]                              |    104|Success|
|9  |[DEL_SpliceDelaysByShiftJob_Tests].[test closes open delay at boundary for past shifts]                              |     87|Success|
|10 |[DEL_SpliceDelaysByShiftJob_Tests].[test does not modify delay contained in one shift]                               |     78|Success|
|11 |[DEL_SpliceDelaysByShiftJob_Tests].[test handles delay starting on shift boundary]                                   |     75|Success|
|12 |[DEL_SpliceDelaysByShiftJob_Tests].[test ignores delays before DaysBack window]                                      |    124|Success|
|13 |[DEL_SpliceDelaysByShiftJob_Tests].[test ignores delays starting after End parameter]                                |     74|Success|
|14 |[DEL_SpliceDelaysByShiftJob_Tests].[test is idempotent on second run]                                                |    136|Success|
|15 |[DEL_SpliceDelaysByShiftJob_Tests].[test keeps open delay open in current shift]                                     |     82|Success|
|16 |[DEL_SpliceDelaysByShiftJob_Tests].[test marks slice non-micro when longer than MinDelayTime]                        |     78|Success|
|17 |[DEL_SpliceDelaysByShiftJob_Tests].[test NULL AssetId processes only Caster EAF LMF]                                 |    111|Success|
|18 |[DEL_SpliceDelaysByShiftJob_Tests].[test preserves OriginalDelayId when re-splicing]                                 |     82|Success|
|19 |[DEL_SpliceDelaysByShiftJob_Tests].[test propagates justification and metadata to new slices]                        |     90|Success|
|20 |[DEL_SpliceDelaysByShiftJob_Tests].[test sets OriginalDelayId to self for first splice]                              |     91|Success|
|21 |[DEL_SpliceDelaysByShiftJob_Tests].[test splits delay crossing multiple shift boundaries]                            |     83|Success|
|22 |[DEL_SpliceDelaysByShiftJob_Tests].[test splits delay crossing one shift boundary]                                   |     91|Success|
|23 |[DEL_SpliceDelaysByShiftJob_Tests].[test throws when AssetId does not exist]                                         |     49|Success|
|24 |[DEL_UpsertDelayCategory_Tests].[test insert ignores @IsActive parameter]                                            |    124|Success|
|25 |[DEL_UpsertDelayCategory_Tests].[test insert with name colliding inactive sibling succeeds]                          |     66|Success|
|26 |[DEL_UpsertDelayCategory_Tests].[test insert with same name in different area succeeds]                              |     62|Success|
|27 |[DEL_UpsertDelayCategory_Tests].[test insert writes Name Color and DelayAreaAssetId]                                 |     45|Success|
|28 |[DEL_UpsertDelayCategory_Tests].[test successful insert does not call WriteLog]                                      |     70|Success|
|29 |[DEL_UpsertDelayCategory_Tests].[test successful update calls WriteLog once]                                         |     58|Success|
|30 |[DEL_UpsertDelayCategory_Tests].[test throws 50000 when name collides with active sibling in same area]              |     50|Success|
|31 |[DEL_UpsertDelayCategory_Tests].[test throws 51001 when both DelayAreaAssetId and DelayCategoryId are NULL]          |     46|Success|
|32 |[DEL_UpsertDelayCategory_Tests].[test throws 51002 when DelayAreaAssetId is not a delay area]                        |     45|Success|
|33 |[DEL_UpsertDelayCategory_Tests].[test throws 51002 when update reparents to a non-delay-area asset]                  |     41|Success|
|34 |[DEL_UpsertDelayCategory_Tests].[test throws 51004 when DelayCategoryName is NULL]                                   |     49|Success|
|35 |[DEL_UpsertDelayCategory_Tests].[test throws 51005 when DelayCategoryColor is NULL]                                  |     54|Success|
|36 |[DEL_UpsertDelayCategory_Tests].[test throws 51006 when DelayCategoryId does not exist]                              |     41|Success|
|37 |[DEL_UpsertDelayCategory_Tests].[test update inherits DelayAreaAssetId from existing row when NULL]                  |     70|Success|
|38 |[DEL_UpsertDelayCategory_Tests].[test update reparents category to new DelayAreaAssetId]                             |     70|Success|
|39 |[DEL_UpsertDelayCategory_Tests].[test update toggles IsActive]                                                       |    124|Success|
|40 |[DEL_UpsertDelayCategory_Tests].[test update with same name as self does not throw 50000]                            |     67|Success|
|41 |[DEL_UpsertDelayCategory_Tests].[test update writes new DelayCategoryColor]                                          |    123|Success|
|42 |[DEL_UpsertDelayCategory_Tests].[test update writes new DelayCategoryName]                                           |     58|Success|
|43 |[DEL_UpsertManualDelay_Tests].[test insert open delay leaves End NULL]                                               |    123|Success|
|44 |[DEL_UpsertManualDelay_Tests].[test insert throws 51301 when AssetId is NULL]                                        |    116|Success|
|45 |[DEL_UpsertManualDelay_Tests].[test insert throws 51302 when Start is NULL]                                          |     66|Success|
|46 |[DEL_UpsertManualDelay_Tests].[test insert throws 51303 when an open delay precedes Start]                           |     87|Success|
|47 |[DEL_UpsertManualDelay_Tests].[test insert throws 51304 when End is before Start]                                    |     99|Success|
|48 |[DEL_UpsertManualDelay_Tests].[test insert throws 51305 when range collides with existing delay]                     |    117|Success|
|49 |[DEL_UpsertManualDelay_Tests].[test insert throws 51306 when End is NULL and a later delay exists]                   |     62|Success|
|50 |[DEL_UpsertManualDelay_Tests].[test insert with code stamps JustifiedByUser and JustifiedDatetime]                   |    161|Success|
|51 |[DEL_UpsertManualDelay_Tests].[test insert with End sets IsDelayManual IsMicroDelay and ShiftId]                     |    107|Success|
|52 |[DEL_UpsertManualDelay_Tests].[test insert without code or category leaves Justified fields NULL]                    |    126|Success|
|53 |[DEL_UpsertManualDelay_Tests].[test NULL skips Code and Category existence check]                                    |    160|Success|
|54 |[DEL_UpsertManualDelay_Tests].[test sentinel -1 skips Code and Category existence check]                             |     87|Success|
|55 |[DEL_UpsertManualDelay_Tests].[test throws 51309 when DelayCategoryId does not exist]                                |     65|Success|
|56 |[DEL_UpsertManualDelay_Tests].[test throws 51309 when DelayCodeId does not exist]                                    |    153|Success|
|57 |[DEL_UpsertManualDelay_Tests].[test throws 51310 when no shift exists for Start]                                     |     98|Success|
|58 |[DEL_UpsertManualDelay_Tests].[test update changing code re-stamps Justified fields]                                 |    103|Success|
|59 |[DEL_UpsertManualDelay_Tests].[test update inherits current Start when @Start is NULL]                               |    180|Success|
|60 |[DEL_UpsertManualDelay_Tests].[test update throws 51307 when DelayId does not exist]                                 |     65|Success|
|61 |[DEL_UpsertManualDelay_Tests].[test update throws 51308 when delay is not manual]                                    |    103|Success|
|62 |[DEL_UpsertManualDelay_Tests].[test update throws 51311 when an open delay precedes Start]                           |     83|Success|
|63 |[DEL_UpsertManualDelay_Tests].[test update throws 51312 when inherited End is before new Start]                      |     74|Success|
|64 |[DEL_UpsertManualDelay_Tests].[test update with non-NULL Comments overwrites]                                        |     98|Success|
|65 |[DEL_UpsertManualDelay_Tests].[test update with NULL Comments keeps existing]                                        |    103|Success|
|66 |[DEL_UpsertManualDelay_Tests].[test update with NULL wipes code]                                                     |    137|Success|
|67 |[DEL_UpsertManualDelay_Tests].[test update with same code does not re-stamp Justified fields]                        |    132|Success|
|68 |[DEL_UpsertManualDelay_Tests].[test update with sentinel -1 keeps current code]                                      |    173|Success|
|69 |[DEL_UpsertManualDelay_Tests].[test update with sentinel -1 on code does not re-stamp Justified fields]              |    111|Success|
|70 |[DEL_UpsertManualDelay_Tests].[test update writes new Start End and recomputes ShiftId]                              |     90|Success|
|71 |[EQP_UpsertPart_Tests].[test 1 INSERT writes PartTypeId and PartName]                                                |     29|Success|
|72 |[EQP_UpsertPart_Tests].[test 10 VALIDATE NULL PartTypeId throws]                                                     |     25|Success|
|73 |[EQP_UpsertPart_Tests].[test 11 UPDATE overwrites PartTypeId and PartName of the targeted row]                       |     29|Success|
|74 |[EQP_UpsertPart_Tests].[test 12 UPDATE returns the targeted PartId]                                                  |     28|Success|
|75 |[EQP_UpsertPart_Tests].[test 13 UPDATE preserves IsActive IsDefaultArray and AuxPartId]                              |     33|Success|
|76 |[EQP_UpsertPart_Tests].[test 14 UPDATE only affects the targeted row]                                                |     28|Success|
|77 |[EQP_UpsertPart_Tests].[test 15 UPDATE with PartTypeId = -1 preserves current]                                       |     37|Success|
|78 |[EQP_UpsertPart_Tests].[test 16 UPDATE with empty PartName preserves current]                                        |     29|Success|
|79 |[EQP_UpsertPart_Tests].[test 17 UPDATE with explicit IsActive flips the value]                                       |     33|Success|
|80 |[EQP_UpsertPart_Tests].[test 18 UPDATE with explicit IsDefaultArray flips the value]                                 |     33|Success|
|81 |[EQP_UpsertPart_Tests].[test 19 UPDATE with explicit AuxPartId writes the new value]                                 |     37|Success|
|82 |[EQP_UpsertPart_Tests].[test 2 INSERT returns the new identity value]                                                |     25|Success|
|83 |[EQP_UpsertPart_Tests].[test 20 UPDATE with AuxPartId = -1 preserves current]                                        |     33|Success|
|84 |[EQP_UpsertPart_Tests].[test 21 UPDATE with explicit NULL AuxPartId clears the value]                                |     29|Success|
|85 |[EQP_UpsertPart_Tests].[test 22 VALIDATE on non-existent PartId throws]                                              |     29|Success|
|86 |[EQP_UpsertPart_Tests].[test 23 UPDATE with no changes still returns the PartId]                                     |     29|Success|
|87 |[EQP_UpsertPart_Tests].[test 24 VALIDATE NULL User throws]                                                           |     21|Success|
|88 |[EQP_UpsertPart_Tests].[test 25 VALIDATE empty User throws]                                                          |     24|Success|
|89 |[EQP_UpsertPart_Tests].[test 26 LOG insert writes an informational audit log row]                                    |     37|Success|
|90 |[EQP_UpsertPart_Tests].[test 27 LOG update with changes writes an informational audit log row with the delta]        |     41|Success|
|91 |[EQP_UpsertPart_Tests].[test 28 LOG update with no changes writes no audit log row]                                  |     29|Success|
|92 |[EQP_UpsertPart_Tests].[test 29 LOG User parameter is forwarded to the audit log]                                    |     25|Success|
|93 |[EQP_UpsertPart_Tests].[test 3 INSERT leaves IsActive IsDefaultArray and AuxPartId at table defaults]                |     20|Success|
|94 |[EQP_UpsertPart_Tests].[test 30 LOG custom LogMessage replaces the auto-generated insert message]                    |     41|Success|
|95 |[EQP_UpsertPart_Tests].[test 31 LOG custom LogMessage replaces the auto-generated update message]                    |     86|Success|
|96 |[EQP_UpsertPart_Tests].[test 32 LOG custom LogMessage is ignored on no-change update]                                |     29|Success|
|97 |[EQP_UpsertPart_Tests].[test 4 INSERT with explicit IsDefaultArray writes the value]                                 |     37|Success|
|98 |[EQP_UpsertPart_Tests].[test 5 INSERT with explicit AuxPartId writes the value]                                      |     29|Success|
|99 |[EQP_UpsertPart_Tests].[test 6 INSERT allows duplicate PartName values]                                              |     36|Success|
|100|[EQP_UpsertPart_Tests].[test 7 VALIDATE empty PartName throws]                                                       |    111|Success|
|101|[EQP_UpsertPart_Tests].[test 8 VALIDATE NULL PartName throws]                                                        |     25|Success|
|102|[EQP_UpsertPart_Tests].[test 9 VALIDATE PartTypeId = -1 throws]                                                      |     29|Success|
|103|[EQP_UpsertPartType_Tests].[test 1 INSERT writes PartTypeName IsArray IsReplaceable and InheritedFrom]               |     68|Success|
|104|[EQP_UpsertPartType_Tests].[test 10 UPDATE with IsArray IsReplaceable and SortOrder omitted preserves current]       |     33|Success|
|105|[EQP_UpsertPartType_Tests].[test 11 UPDATE with explicit SortOrder writes the new value]                             |     41|Success|
|106|[EQP_UpsertPartType_Tests].[test 12 VALIDATE on non-existent PartTypeId throws]                                      |     90|Success|
|107|[EQP_UpsertPartType_Tests].[test 13 VALIDATE InheritedFrom equal to PartTypeId throws]                               |     72|Success|
|108|[EQP_UpsertPartType_Tests].[test 14 UPDATE with no changes still returns the PartTypeId]                             |     55|Success|
|109|[EQP_UpsertPartType_Tests].[test 15 VALIDATE NULL User throws]                                                       |     29|Success|
|110|[EQP_UpsertPartType_Tests].[test 16 VALIDATE empty User throws]                                                      |     54|Success|
|111|[EQP_UpsertPartType_Tests].[test 17 LOG insert writes an informational audit log row]                                |    106|Success|
|112|[EQP_UpsertPartType_Tests].[test 18 LOG update with changes writes an informational audit log row with the delta]    |     37|Success|
|113|[EQP_UpsertPartType_Tests].[test 19 LOG update with no changes writes no audit log row]                              |     33|Success|
|114|[EQP_UpsertPartType_Tests].[test 2 INSERT returns the new identity value]                                            |     69|Success|
|115|[EQP_UpsertPartType_Tests].[test 20 LOG User parameter is forwarded to the audit log]                                |     62|Success|
|116|[EQP_UpsertPartType_Tests].[test 21 LOG custom LogMessage replaces the auto-generated insert message]                |     33|Success|
|117|[EQP_UpsertPartType_Tests].[test 22 LOG custom LogMessage replaces the auto-generated update message]                |     61|Success|
|118|[EQP_UpsertPartType_Tests].[test 23 LOG custom LogMessage is ignored on no-change update]                            |     29|Success|
|119|[EQP_UpsertPartType_Tests].[test 3 INSERT with optional params omitted honours table defaults]                       |     24|Success|
|120|[EQP_UpsertPartType_Tests].[test 4 VALIDATE empty PartTypeName throws]                                               |     34|Success|
|121|[EQP_UpsertPartType_Tests].[test 5 VALIDATE NULL PartTypeName throws]                                                |     29|Success|
|122|[EQP_UpsertPartType_Tests].[test 6 UPDATE overwrites all five columns of the existing row]                           |     51|Success|
|123|[EQP_UpsertPartType_Tests].[test 7 UPDATE returns the targeted PartTypeId]                                           |     28|Success|
|124|[EQP_UpsertPartType_Tests].[test 8 UPDATE with empty PartTypeName preserves current]                                 |     70|Success|
|125|[EQP_UpsertPartType_Tests].[test 9 UPDATE with InheritedFrom = -1 preserves current]                                 |     29|Success|
|126|[EQP_UpsertPartTypeTree_Tests].[test 1 INSERT writes ParentPartTypeId PartTypeId PositionId and PositionName]        |     68|Success|
|127|[EQP_UpsertPartTypeTree_Tests].[test 10 UPDATE returns zero]                                                         |    289|Success|
|128|[EQP_UpsertPartTypeTree_Tests].[test 11 UPDATE with empty PositionName preserves current]                            |     70|Success|
|129|[EQP_UpsertPartTypeTree_Tests].[test 12 UPDATE with explicit NULL PositionName clears the value]                     |     46|Success|
|130|[EQP_UpsertPartTypeTree_Tests].[test 13 VALIDATE NULL User throws]                                                   |     83|Success|
|131|[EQP_UpsertPartTypeTree_Tests].[test 14 VALIDATE empty User throws]                                                  |    128|Success|
|132|[EQP_UpsertPartTypeTree_Tests].[test 15 LOG insert writes an informational audit log row]                            |     49|Success|
|133|[EQP_UpsertPartTypeTree_Tests].[test 16 LOG update with changes writes an informational audit log row with the delta]|    127|Success|
|134|[EQP_UpsertPartTypeTree_Tests].[test 17 LOG update with no changes writes no audit log row]                          |     64|Success|
|135|[EQP_UpsertPartTypeTree_Tests].[test 18 LOG User parameter is forwarded to the audit log]                            |     54|Success|
|136|[EQP_UpsertPartTypeTree_Tests].[test 19 LOG custom LogMessage replaces the auto-generated insert message]            |     77|Success|
|137|[EQP_UpsertPartTypeTree_Tests].[test 2 INSERT returns zero]                                                          |     52|Success|
|138|[EQP_UpsertPartTypeTree_Tests].[test 20 LOG custom LogMessage replaces the auto-generated update message]            |     94|Success|
|139|[EQP_UpsertPartTypeTree_Tests].[test 21 LOG custom LogMessage is ignored on no-change update]                        |     86|Success|
|140|[EQP_UpsertPartTypeTree_Tests].[test 3 INSERT with omitted PositionName writes NULL]                                 |     67|Success|
|141|[EQP_UpsertPartTypeTree_Tests].[test 4 INSERT allows the same child type at multiple positions of the same parent]   |    119|Success|
|142|[EQP_UpsertPartTypeTree_Tests].[test 5 VALIDATE NULL ParentPartTypeId throws]                                        |     84|Success|
|143|[EQP_UpsertPartTypeTree_Tests].[test 6 VALIDATE NULL PartTypeId throws]                                              |     64|Success|
|144|[EQP_UpsertPartTypeTree_Tests].[test 7 VALIDATE NULL PositionId throws]                                              |    169|Success|
|145|[EQP_UpsertPartTypeTree_Tests].[test 8 VALIDATE self-referencing edge throws]                                        |     79|Success|
|146|[EQP_UpsertPartTypeTree_Tests].[test 9 UPDATE overwrites PositionName when edge already exists]                      |     74|Success|
|147|[EQP_UpsertTask_Tests].[test 1 INSERT: CREATE writes catParts row]                                                   |    247|Success|
|148|[EQP_UpsertTask_Tests].[test 10 UPDATE: CORRECTION removal updates existing task in place]                           |    243|Success|
|149|[EQP_UpsertTask_Tests].[test 11 UPDATE: CORRECTION removal preserves ParentPartId and PositionId]                    |    142|Success|
|150|[EQP_UpsertTask_Tests].[test 12 UPDATE: CORRECTION install updates existing task in place]                           |    168|Success|
|151|[EQP_UpsertTask_Tests].[test 13 UPDATE: CORRECTION install with NULL parent preserves existing]                      |    181|Success|
|152|[EQP_UpsertTask_Tests].[test 14 UPDATE: CORRECTION install overwrites parent and position]                           |    141|Success|
|153|[EQP_UpsertTask_Tests].[test 15 VALIDATE: CREATE requires PartTypeId]                                                |     88|Success|
|154|[EQP_UpsertTask_Tests].[test 16 VALIDATE: CREATE requires PartName]                                                  |    205|Success|
|155|[EQP_UpsertTask_Tests].[test 17 VALIDATE: CREATE requires ParentPartId]                                              |    180|Success|
|156|[EQP_UpsertTask_Tests].[test 18 VALIDATE: REMOVE fresh floor is last install timestamp]                              |    205|Success|
|157|[EQP_UpsertTask_Tests].[test 19 VALIDATE: CORRECTION removal floor is previous timestamp]                            |    133|Success|
|158|[EQP_UpsertTask_Tests].[test 2 INSERT: CREATE invokes MovePart with returned PartId]                                 |    143|Success|
|159|[EQP_UpsertTask_Tests].[test 20 VALIDATE: INSTALL part floor blocks earlier than last task]                          |    180|Success|
|160|[EQP_UpsertTask_Tests].[test 21 VALIDATE: INSTALL location floor blocks slot overlap]                                |    175|Success|
|161|[EQP_UpsertTask_Tests].[test 22 VALIDATE: NULL timestamp is coerced to GETUTCDATE]                                   |    135|Success|
|162|[EQP_UpsertTask_Tests].[test 23 LOG: CREATE success writes informational log]                                        |    303|Success|
|163|[EQP_UpsertTask_Tests].[test 24 LOG: error path writes error log and re-raises]                                      |    160|Success|
|164|[EQP_UpsertTask_Tests].[test 25 LOG: REMOVE fresh success writes informational log]                                  |    201|Success|
|165|[EQP_UpsertTask_Tests].[test 26 LOG: CORRECTION removal success writes informational log]                            |    155|Success|
|166|[EQP_UpsertTask_Tests].[test 27 LOG: INSTALL fresh success writes informational log]                                 |    149|Success|
|167|[EQP_UpsertTask_Tests].[test 28 LOG: CORRECTION install success writes informational log]                            |    159|Success|
|168|[EQP_UpsertTask_Tests].[test 29 INSERT: CREATE backdated triggers cache rebuild]                                     |    186|Success|
|169|[EQP_UpsertTask_Tests].[test 3 INSERT: CREATE returns new PartId]                                                    |    164|Success|
|170|[EQP_UpsertTask_Tests].[test 30 INSERT: REMOVE backdated deletes batches and batch metrics]                          |    178|Success|
|171|[EQP_UpsertTask_Tests].[test 31 UPDATE: CORRECTION removal backdated deletes window batches]                         |    187|Success|
|172|[EQP_UpsertTask_Tests].[test 32 INSERT: INSTALL backdated triggers cache rebuild]                                    |    148|Success|
|173|[EQP_UpsertTask_Tests].[test 33 VALIDATE: INSTALL fresh requires ParentPartId]                                       |    120|Success|
|174|[EQP_UpsertTask_Tests].[test 4 INSERT: INSTALL from default array invokes MovePart]                                  |    177|Success|
|175|[EQP_UpsertTask_Tests].[test 5 INSERT: INSTALL with no history invokes MovePart]                                     |    191|Success|
|176|[EQP_UpsertTask_Tests].[test 6 INSERT: INSTALL future timestamp does not rebuild cache]                              |    141|Success|
|177|[EQP_UpsertTask_Tests].[test 7 INSERT: REMOVE invokes MovePart with MoveToDefaultArray]                              |    326|Success|
|178|[EQP_UpsertTask_Tests].[test 8 INSERT: REMOVE with no history invokes MovePart with MoveToDefaultArray]              |    184|Success|
|179|[EQP_UpsertTask_Tests].[test 9 INSERT: REMOVE future timestamp does not delete batches]                              |    148|Success|
--------------------------------------------------------------------------------------------
Test Case Summary: 179 test case(s) executed, 179 succeeded, 0 skipped, 0 failed, 0 errored.
--------------------------------------------------------------------------------------------