-
Notifications
You must be signed in to change notification settings - Fork 0
/
events2.puml
56 lines (54 loc) · 1.66 KB
/
events2.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@startuml
hide footbox
actor external_runner as ER
participant "FrameworkController" as FC
participant "DefaultTestAssemblyBuilder" as DTAB
participant "NunitTestAssemblyrunner" as NTAR
participant "TestProgressReporter" as TPR <<ITestListeeer>>
participant "TestExecutionContext" as TEC <<ITestListener>>
participant "QueuingEventListener" as QEL <<ITestListener>>
participant "EventQueue" as EQ <<ITestListener>>
participant "EventPump" as EP
participant "SimpleWorkItemDispatcher" as SWID
participant "WorkItem" as WI <<CompositeWorkItem>>
ER -> FC** : Create(assemblyPath,idPrefix,settings)
FC -> DTAB** : Create
FC -> NTAR** : Create
ER -> FC : LoadTests()
FC -> NTAR : Load
NTAR -> SWID** : Create TopLevelItem and children
alt RunTests, no callbackl
ER -> FC : RunTests(filter)
else RunTests, with callback
ER -> FC : RunTests(Action callback,filter)
FC -> FC : CreateHandler(callback)
FC -> TPR**: Create(handler)
end
FC -> NTAR : Run(testprogressreporter,filter)
activate NTAR
NTAR -> NTAR : RunAsync(listener,filter)
activate NTAR
NTAR -> NTAR: CreateTEC(loadedTests,listener)
activate NTAR
NTAR -> TEC** : Create
NTAR -> TEC : Set(listener)
alt RunOnMainThread
NTAR -> MainThreadWorkItemDispatcher** : Create
else RunParallel
NTAR -> ParallelWorkItemDispatcher** : Create
else RunOnThreadPool
NTAR -> SWID** : Create
end
NTAR -> TEC : Set(dispatcher)
deactivate NTAR
NTAR -> NTAR : StartRun(context,TopLevelWorkItem,listener)
activate NTAR
NTAR -> QEL** : Create
note over QEL: Specific to an Event type
QEL -> EQ**: Create()
NTAR -> TEC: Set(listener)
NTAR -> EP**: Create(listener,queue.Events)
NTAR -> EP : Start()
NTAR -> SWID : Start(topLevelWorkItem)
SWID -> WI : Execute
@enduml