test_bench-isolated 0 → 2.0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench_isolated/test_bench/cli.rb +298 -0
  3. data/lib/test_bench_isolated/test_bench/controls/file.rb +7 -0
  4. data/lib/test_bench_isolated/test_bench/controls/path.rb +7 -0
  5. data/lib/test_bench_isolated/test_bench/controls/random.rb +9 -0
  6. data/lib/test_bench_isolated/test_bench/controls/result.rb +7 -0
  7. data/lib/test_bench_isolated/test_bench/controls/stdin.rb +29 -0
  8. data/lib/test_bench_isolated/test_bench/controls.rb +11 -0
  9. data/lib/test_bench_isolated/test_bench/fixture/actuate/class.rb +97 -0
  10. data/lib/test_bench_isolated/test_bench/fixture/actuate/object.rb +93 -0
  11. data/lib/test_bench_isolated/test_bench/fixture/controls/exception.rb +9 -0
  12. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/class.rb +88 -0
  13. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object/modules.rb +41 -0
  14. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object.rb +33 -0
  15. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture.rb +29 -0
  16. data/lib/test_bench_isolated/test_bench/fixture/controls/output.rb +9 -0
  17. data/lib/test_bench_isolated/test_bench/fixture/controls/random.rb +9 -0
  18. data/lib/test_bench_isolated/test_bench/fixture/controls/result.rb +9 -0
  19. data/lib/test_bench_isolated/test_bench/fixture/controls/title.rb +9 -0
  20. data/lib/test_bench_isolated/test_bench/fixture/controls.rb +13 -0
  21. data/lib/test_bench_isolated/test_bench/fixture/evaluate.rb +31 -0
  22. data/lib/test_bench_isolated/test_bench/fixture/fixture.rb +201 -0
  23. data/lib/test_bench_isolated/test_bench/fixture.rb +8 -0
  24. data/lib/test_bench_isolated/test_bench/output/controls/data.rb +51 -0
  25. data/lib/test_bench_isolated/test_bench/output/controls/device.rb +29 -0
  26. data/lib/test_bench_isolated/test_bench/output/controls/event.rb +9 -0
  27. data/lib/test_bench_isolated/test_bench/output/controls/output.rb +36 -0
  28. data/lib/test_bench_isolated/test_bench/output/controls/random.rb +9 -0
  29. data/lib/test_bench_isolated/test_bench/output/controls/style.rb +33 -0
  30. data/lib/test_bench_isolated/test_bench/output/controls/styling.rb +29 -0
  31. data/lib/test_bench_isolated/test_bench/output/controls/text.rb +19 -0
  32. data/lib/test_bench_isolated/test_bench/output/controls.rb +10 -0
  33. data/lib/test_bench_isolated/test_bench/output/device/null.rb +21 -0
  34. data/lib/test_bench_isolated/test_bench/output/device/substitute.rb +60 -0
  35. data/lib/test_bench_isolated/test_bench/output/digest.rb +115 -0
  36. data/lib/test_bench_isolated/test_bench/output/output.rb +68 -0
  37. data/lib/test_bench_isolated/test_bench/output/writer/buffer.rb +59 -0
  38. data/lib/test_bench_isolated/test_bench/output/writer/defaults.rb +13 -0
  39. data/lib/test_bench_isolated/test_bench/output/writer/style.rb +52 -0
  40. data/lib/test_bench_isolated/test_bench/output/writer/substitute.rb +40 -0
  41. data/lib/test_bench_isolated/test_bench/output/writer.rb +212 -0
  42. data/lib/test_bench_isolated/test_bench/output.rb +14 -0
  43. data/lib/test_bench_isolated/test_bench/random/controls/seed.rb +27 -0
  44. data/lib/test_bench_isolated/test_bench/random/controls.rb +1 -0
  45. data/lib/test_bench_isolated/test_bench/random/random.rb +170 -0
  46. data/lib/test_bench_isolated/test_bench/random.rb +1 -0
  47. data/lib/test_bench_isolated/test_bench/run/controls/directory.rb +72 -0
  48. data/lib/test_bench_isolated/test_bench/run/controls/event_data.rb +9 -0
  49. data/lib/test_bench_isolated/test_bench/run/controls/events/event_data.rb +11 -0
  50. data/lib/test_bench_isolated/test_bench/run/controls/events/file_crashed.rb +111 -0
  51. data/lib/test_bench_isolated/test_bench/run/controls/events/file_finished.rb +58 -0
  52. data/lib/test_bench_isolated/test_bench/run/controls/events/file_started.rb +49 -0
  53. data/lib/test_bench_isolated/test_bench/run/controls/events/finished.rb +58 -0
  54. data/lib/test_bench_isolated/test_bench/run/controls/events/session.rb +11 -0
  55. data/lib/test_bench_isolated/test_bench/run/controls/events/started.rb +49 -0
  56. data/lib/test_bench_isolated/test_bench/run/controls/exception.rb +103 -0
  57. data/lib/test_bench_isolated/test_bench/run/controls/executor.rb +58 -0
  58. data/lib/test_bench_isolated/test_bench/run/controls/file/create.rb +71 -0
  59. data/lib/test_bench_isolated/test_bench/run/controls/file/pattern.rb +35 -0
  60. data/lib/test_bench_isolated/test_bench/run/controls/file.rb +182 -0
  61. data/lib/test_bench_isolated/test_bench/run/controls/path.rb +17 -0
  62. data/lib/test_bench_isolated/test_bench/run/controls/process_id.rb +9 -0
  63. data/lib/test_bench_isolated/test_bench/run/controls/random.rb +9 -0
  64. data/lib/test_bench_isolated/test_bench/run/controls/result.rb +9 -0
  65. data/lib/test_bench_isolated/test_bench/run/controls/time.rb +9 -0
  66. data/lib/test_bench_isolated/test_bench/run/controls.rb +26 -0
  67. data/lib/test_bench_isolated/test_bench/run/events.rb +14 -0
  68. data/lib/test_bench_isolated/test_bench/run/executor/serial.rb +36 -0
  69. data/lib/test_bench_isolated/test_bench/run/executor/substitute.rb +47 -0
  70. data/lib/test_bench_isolated/test_bench/run/executor.rb +46 -0
  71. data/lib/test_bench_isolated/test_bench/run/file.rb +83 -0
  72. data/lib/test_bench_isolated/test_bench/run/get_files/substitute.rb +48 -0
  73. data/lib/test_bench_isolated/test_bench/run/get_files.rb +78 -0
  74. data/lib/test_bench_isolated/test_bench/run/output/file.rb +137 -0
  75. data/lib/test_bench_isolated/test_bench/run/output/summary/error.rb +141 -0
  76. data/lib/test_bench_isolated/test_bench/run/output/summary.rb +184 -0
  77. data/lib/test_bench_isolated/test_bench/run/run.rb +156 -0
  78. data/lib/test_bench_isolated/test_bench/run.rb +18 -0
  79. data/lib/test_bench_isolated/test_bench/session/controls/comment.rb +107 -0
  80. data/lib/test_bench_isolated/test_bench/session/controls/detail.rb +93 -0
  81. data/lib/test_bench_isolated/test_bench/session/controls/event.rb +9 -0
  82. data/lib/test_bench_isolated/test_bench/session/controls/events/commented.rb +112 -0
  83. data/lib/test_bench_isolated/test_bench/session/controls/events/context_finished.rb +72 -0
  84. data/lib/test_bench_isolated/test_bench/session/controls/events/context_skipped.rb +49 -0
  85. data/lib/test_bench_isolated/test_bench/session/controls/events/context_started.rb +66 -0
  86. data/lib/test_bench_isolated/test_bench/session/controls/events/detailed.rb +112 -0
  87. data/lib/test_bench_isolated/test_bench/session/controls/events/event_data.rb +11 -0
  88. data/lib/test_bench_isolated/test_bench/session/controls/events/failed.rb +49 -0
  89. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_finished.rb +55 -0
  90. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_started.rb +49 -0
  91. data/lib/test_bench_isolated/test_bench/session/controls/events/test_finished.rb +72 -0
  92. data/lib/test_bench_isolated/test_bench/session/controls/events/test_skipped.rb +49 -0
  93. data/lib/test_bench_isolated/test_bench/session/controls/events/test_started.rb +66 -0
  94. data/lib/test_bench_isolated/test_bench/session/controls/events.rb +35 -0
  95. data/lib/test_bench_isolated/test_bench/session/controls/exception.rb +47 -0
  96. data/lib/test_bench_isolated/test_bench/session/controls/failure.rb +21 -0
  97. data/lib/test_bench_isolated/test_bench/session/controls/fixture.rb +21 -0
  98. data/lib/test_bench_isolated/test_bench/session/controls/output/detail.rb +31 -0
  99. data/lib/test_bench_isolated/test_bench/session/controls/output.rb +57 -0
  100. data/lib/test_bench_isolated/test_bench/session/controls/process_id.rb +9 -0
  101. data/lib/test_bench_isolated/test_bench/session/controls/random.rb +9 -0
  102. data/lib/test_bench_isolated/test_bench/session/controls/result.rb +25 -0
  103. data/lib/test_bench_isolated/test_bench/session/controls/substitute/path.rb +35 -0
  104. data/lib/test_bench_isolated/test_bench/session/controls/time.rb +9 -0
  105. data/lib/test_bench_isolated/test_bench/session/controls/title.rb +41 -0
  106. data/lib/test_bench_isolated/test_bench/session/controls.rb +36 -0
  107. data/lib/test_bench_isolated/test_bench/session/events.rb +27 -0
  108. data/lib/test_bench_isolated/test_bench/session/output/get.rb +29 -0
  109. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive/viewport.rb +167 -0
  110. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive.rb +141 -0
  111. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer.rb +29 -0
  112. data/lib/test_bench_isolated/test_bench/session/output/writer/defaults.rb +19 -0
  113. data/lib/test_bench_isolated/test_bench/session/output/writer/substitute.rb +19 -0
  114. data/lib/test_bench_isolated/test_bench/session/output/writer.rb +97 -0
  115. data/lib/test_bench_isolated/test_bench/session/output.rb +377 -0
  116. data/lib/test_bench_isolated/test_bench/session/projection.rb +30 -0
  117. data/lib/test_bench_isolated/test_bench/session/session.rb +220 -0
  118. data/lib/test_bench_isolated/test_bench/session/store.rb +61 -0
  119. data/lib/test_bench_isolated/test_bench/session/substitute/path.rb +65 -0
  120. data/lib/test_bench_isolated/test_bench/session/substitute/sink.rb +114 -0
  121. data/lib/test_bench_isolated/test_bench/session/substitute.rb +120 -0
  122. data/lib/test_bench_isolated/test_bench/session.rb +22 -0
  123. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/event_data.rb +17 -0
  124. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/metadata.rb +72 -0
  125. data/lib/test_bench_isolated/test_bench/telemetry/controls/event.rb +140 -0
  126. data/lib/test_bench_isolated/test_bench/telemetry/controls/event_data.rb +131 -0
  127. data/lib/test_bench_isolated/test_bench/telemetry/controls/file.rb +86 -0
  128. data/lib/test_bench_isolated/test_bench/telemetry/controls/handler.rb +83 -0
  129. data/lib/test_bench_isolated/test_bench/telemetry/controls/process_id.rb +21 -0
  130. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection/receiver.rb +33 -0
  131. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection.rb +86 -0
  132. data/lib/test_bench_isolated/test_bench/telemetry/controls/random.rb +9 -0
  133. data/lib/test_bench_isolated/test_bench/telemetry/controls/sink.rb +35 -0
  134. data/lib/test_bench_isolated/test_bench/telemetry/controls/time.rb +125 -0
  135. data/lib/test_bench_isolated/test_bench/telemetry/controls.rb +17 -0
  136. data/lib/test_bench_isolated/test_bench/telemetry/event.rb +108 -0
  137. data/lib/test_bench_isolated/test_bench/telemetry/event_data/serialization.rb +172 -0
  138. data/lib/test_bench_isolated/test_bench/telemetry/event_data.rb +15 -0
  139. data/lib/test_bench_isolated/test_bench/telemetry/sink/file.rb +33 -0
  140. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
  141. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler.rb +128 -0
  142. data/lib/test_bench_isolated/test_bench/telemetry/sink/projection.rb +134 -0
  143. data/lib/test_bench_isolated/test_bench/telemetry/sink.rb +13 -0
  144. data/lib/test_bench_isolated/test_bench/telemetry/substitute/sink.rb +85 -0
  145. data/lib/test_bench_isolated/test_bench/telemetry/substitute.rb +34 -0
  146. data/lib/test_bench_isolated/test_bench/telemetry/telemetry.rb +111 -0
  147. data/lib/test_bench_isolated/test_bench/telemetry.rb +17 -0
  148. data/lib/test_bench_isolated/test_bench/test_bench.rb +56 -0
  149. data/lib/test_bench_isolated/test_bench.rb +5 -0
  150. data/script/bench +5 -0
  151. metadata +156 -7
  152. data/lib/test_bench/bootstrap.rb +0 -328
@@ -0,0 +1,156 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Run
4
+ Error = Class.new(RuntimeError)
5
+
6
+ include Events
7
+
8
+ def telemetry
9
+ @telemetry ||= Telemetry::Substitute.build
10
+ end
11
+ attr_writer :telemetry
12
+
13
+ def session
14
+ @session ||= Session::Substitute.build
15
+ end
16
+ attr_writer :session
17
+
18
+ def get_files
19
+ @get_files ||= GetFiles::Substitute.build
20
+ end
21
+ attr_writer :get_files
22
+
23
+ def executor
24
+ @executor ||= Executor::Substitute.build
25
+ end
26
+ attr_writer :executor
27
+
28
+ def random
29
+ @random ||= Random::Substitute.build
30
+ end
31
+ attr_writer :random
32
+
33
+ def path_sequence
34
+ @path_sequence ||= 0
35
+ end
36
+ attr_writer :path_sequence
37
+
38
+ def self.build(exclude: nil)
39
+ instance = new
40
+
41
+ GetFiles.configure(instance, exclude:)
42
+
43
+ Executor::Serial.configure(instance)
44
+
45
+ Random.configure(instance)
46
+
47
+ session = Session.build do |telemetry|
48
+ Output::File.register(telemetry)
49
+ Output::Summary::Error.register(telemetry)
50
+ Output::Summary.register(telemetry)
51
+
52
+ instance.telemetry = telemetry
53
+ end
54
+
55
+ Session.configure(instance, session:)
56
+
57
+ instance
58
+ end
59
+
60
+ def self.call(path, session_store: nil, exclude: nil)
61
+ session_store ||= Session::Store.instance
62
+
63
+ instance = build(exclude:)
64
+
65
+ session_store.reset(instance.session)
66
+
67
+ instance.(path)
68
+ end
69
+
70
+ def self.configure(receiver, exclude: nil, attr_name: nil)
71
+ attr_name ||= :run
72
+
73
+ instance = build(exclude:)
74
+ receiver.public_send(:"#{attr_name}=", instance)
75
+ end
76
+
77
+ def call(path)
78
+ run do
79
+ path(path)
80
+ end
81
+ end
82
+
83
+ def run(&block)
84
+ if ran?
85
+ raise Error, "Already ran"
86
+ end
87
+
88
+ telemetry.record(Started.build(random.seed))
89
+
90
+ executor.start
91
+
92
+ if not block.nil?
93
+ block.(self)
94
+
95
+ if not ran?
96
+ raise Error, "No paths were supplied"
97
+ end
98
+ end
99
+
100
+ executor.finish
101
+
102
+ if session.passed?
103
+ result = true
104
+ elsif session.failed?
105
+ result = false
106
+ end
107
+
108
+ telemetry.record(Finished.build(random.seed, result))
109
+ result
110
+ end
111
+ alias :! :run
112
+
113
+ def path(path)
114
+ self.path_sequence += 1
115
+
116
+ get_files.(path) do |file|
117
+ executor.execute(file)
118
+ end
119
+
120
+ rescue GetFiles::FileError
121
+ warn "#{path}: No such file or directory"
122
+
123
+ session.record_failure
124
+ end
125
+ alias :<< :path
126
+
127
+ def ran?
128
+ path_sequence > 0
129
+ end
130
+
131
+ module Substitute
132
+ def self.build
133
+ Run.build
134
+ end
135
+
136
+ class Run < Run
137
+ def self.build
138
+ new
139
+ end
140
+
141
+ def path?(path)
142
+ get_files.path?(path)
143
+ end
144
+
145
+ def set_result(result)
146
+ if result
147
+ session.record_assertion
148
+ else
149
+ session.record_failure
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_bench_isolated/test_bench/fixture'
2
+
3
+ require 'test_bench_isolated/test_bench/run/events'
4
+
5
+ require 'test_bench_isolated/test_bench/run/get_files'
6
+ require 'test_bench_isolated/test_bench/run/get_files/substitute'
7
+
8
+ require 'test_bench_isolated/test_bench/run/file'
9
+
10
+ require 'test_bench_isolated/test_bench/run/output/file'
11
+ require 'test_bench_isolated/test_bench/run/output/summary/error'
12
+ require 'test_bench_isolated/test_bench/run/output/summary'
13
+
14
+ require 'test_bench_isolated/test_bench/run/executor'
15
+ require 'test_bench_isolated/test_bench/run/executor/substitute'
16
+ require 'test_bench_isolated/test_bench/run/executor/serial'
17
+
18
+ require 'test_bench_isolated/test_bench/run/run'
@@ -0,0 +1,107 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Comment
6
+ module Text
7
+ def self.example
8
+ "Some comment"
9
+ end
10
+
11
+ def self.random
12
+ Random.example
13
+ end
14
+
15
+ module Random
16
+ def self.example(suffix=nil, text: nil)
17
+ suffix ||= self.suffix
18
+ text ||= Text.example
19
+
20
+ "#{text} #{suffix}"
21
+ end
22
+
23
+ def self.suffix
24
+ Controls::Random.string
25
+ end
26
+ end
27
+
28
+ module MultipleLines
29
+ def self.example(lines=nil)
30
+ lines ||= self.lines
31
+
32
+ text = String.new
33
+
34
+ lines.map do |line|
35
+ text << line
36
+ text << "\n"
37
+ end
38
+
39
+ text
40
+ end
41
+
42
+ def self.random
43
+ Random.example
44
+ end
45
+
46
+ def self.lines
47
+ [
48
+ "Some comment",
49
+ "Some other comment",
50
+ "Yet another comment"
51
+ ]
52
+ end
53
+
54
+ module Random
55
+ def self.example(suffix=nil)
56
+ suffix ||= Text::Random.suffix
57
+
58
+ lines = MultipleLines.lines.map do |line|
59
+ Text::Random.example(suffix, text: line)
60
+ end
61
+
62
+ MultipleLines.example(lines)
63
+ end
64
+ end
65
+ end
66
+ end
67
+
68
+ module Heading
69
+ def self.example(text: nil)
70
+ text ||= self.text
71
+
72
+ "#{text}:"
73
+ end
74
+
75
+ def self.random
76
+ Random.example
77
+ end
78
+
79
+ def self.text
80
+ "Some Comment Heading"
81
+ end
82
+
83
+ module Random
84
+ def self.example(suffix=nil)
85
+ suffix ||= Controls::Random.string
86
+
87
+ text = "#{Heading.text} #{suffix}"
88
+
89
+ Heading.example(text:)
90
+ end
91
+ end
92
+ end
93
+
94
+ module Quote
95
+ def self.example
96
+ true
97
+ end
98
+
99
+ def self.random
100
+ Random.boolean
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,93 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Detail
6
+ module Text
7
+ def self.example
8
+ "Some detail"
9
+ end
10
+
11
+ def self.random
12
+ Random.example
13
+ end
14
+
15
+ module Random
16
+ def self.example(suffix=nil, text: nil)
17
+ text ||= Text.example
18
+
19
+ Comment::Text::Random.example(suffix, text:)
20
+ end
21
+ end
22
+
23
+ module MultipleLines
24
+ def self.example(lines=nil)
25
+ lines ||= self.lines
26
+
27
+ Comment::Text::MultipleLines.example(lines)
28
+ end
29
+
30
+ def self.random
31
+ Random.example
32
+ end
33
+
34
+ def self.lines
35
+ [
36
+ "Some detail",
37
+ "Some other detail",
38
+ "Yet another detail"
39
+ ]
40
+ end
41
+
42
+ module Random
43
+ def self.example(suffix=nil)
44
+ suffix ||= Comment::Text::Random.suffix
45
+
46
+ lines = MultipleLines.lines.map do |line|
47
+ Text::Random.example(suffix, text: line)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ module Heading
55
+ def self.example(text: nil)
56
+ text ||= self.text
57
+
58
+ "#{text}:"
59
+ end
60
+
61
+ def self.random
62
+ Random.example
63
+ end
64
+
65
+ def self.text
66
+ "Some Detail Heading"
67
+ end
68
+
69
+ module Random
70
+ def self.example(suffix=nil)
71
+ suffix ||= Controls::Random.string
72
+
73
+ text = "#{Heading.text} #{suffix}"
74
+
75
+ Heading.example(text:)
76
+ end
77
+ end
78
+ end
79
+
80
+ module Quote
81
+ def self.example
82
+ true
83
+ end
84
+
85
+ def self.random
86
+ Random.boolean
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ Event = Telemetry::Controls::Event
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,112 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module Commented
7
+ extend EventData
8
+
9
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
10
+ quote = self.quote if quote.nil?
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ if text == :none
15
+ text = nil
16
+ else
17
+ text ||= self.text
18
+ end
19
+
20
+ Session::Events::Commented.build(text, quote, heading, process_id:, time:)
21
+ end
22
+
23
+ def self.random
24
+ Random.example
25
+ end
26
+
27
+ def self.text
28
+ Comment::Text.example
29
+ end
30
+
31
+ def self.quote
32
+ false
33
+ end
34
+
35
+ def self.process_id
36
+ ProcessID.example
37
+ end
38
+
39
+ def self.time
40
+ Time.example
41
+ end
42
+
43
+ module Random
44
+ extend EventData
45
+
46
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
47
+ text ||= Comment::Text.random
48
+ quote ||= Comment::Quote.random
49
+ process_id ||= ProcessID.random
50
+ time ||= Time.random
51
+
52
+ Commented.example(text:, quote:, heading:, process_id:, time:)
53
+ end
54
+ end
55
+
56
+ module MultipleLines
57
+ extend EventData
58
+
59
+ def self.example(omit_heading: nil, heading: nil, **attributes)
60
+ if omit_heading.nil?
61
+ omit_heading = !heading.nil?
62
+ end
63
+
64
+ if not omit_heading
65
+ heading ||= self.heading
66
+ end
67
+
68
+ Commented.example(text:, quote:, heading:, **attributes)
69
+ end
70
+
71
+ def self.random
72
+ Random.example
73
+ end
74
+
75
+ def self.text
76
+ Comment::Text::MultipleLines.example
77
+ end
78
+
79
+ def self.quote
80
+ true
81
+ end
82
+
83
+ def self.heading
84
+ Comment::Heading.example
85
+ end
86
+
87
+ module Random
88
+ extend EventData
89
+
90
+ def self.example(omit_heading: nil, heading: nil, **attributes)
91
+ if omit_heading.nil?
92
+ omit_heading = !heading.nil?
93
+ end
94
+
95
+ suffix = Controls::Random.string
96
+
97
+ if not omit_heading
98
+ heading = Comment::Heading::Random.example(suffix)
99
+ end
100
+
101
+ text = Comment::Text::MultipleLines::Random.example(suffix)
102
+
103
+ Commented::Random.example(text:, heading:, **attributes)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,72 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module ContextFinished
7
+ extend EventData
8
+
9
+ def self.example(title: nil, result: nil, process_id: nil, time: nil)
10
+ result = self.result if result.nil?
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ if title == :none
15
+ title = nil
16
+ else
17
+ title ||= self.title
18
+ end
19
+
20
+ Session::Events::ContextFinished.build(title, result, process_id:, time:)
21
+ end
22
+
23
+ def self.random
24
+ Random.example
25
+ end
26
+
27
+ def self.title
28
+ Title::Context.example
29
+ end
30
+
31
+ def self.result
32
+ Result.example
33
+ end
34
+
35
+ def self.process_id
36
+ ProcessID.example
37
+ end
38
+
39
+ def self.time
40
+ Time.example
41
+ end
42
+
43
+ module Random
44
+ extend EventData
45
+
46
+ def self.example(title: nil, result: nil, process_id: nil, time: nil)
47
+ result = Result.random if result.nil?
48
+ process_id ||= ProcessID.random
49
+ time ||= Time.random
50
+ title ||= Title::Context.random
51
+
52
+ ContextFinished.example(title:, result:, process_id:, time:)
53
+ end
54
+ end
55
+
56
+ module NoTitle
57
+ extend EventData
58
+
59
+ def self.example(**arguments)
60
+ ContextFinished.example(title: :none, **arguments)
61
+ end
62
+
63
+ def self.random
64
+ Random.example(title: :none)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,49 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module ContextSkipped
7
+ extend EventData
8
+
9
+ def self.example(title: nil, process_id: nil, time: nil)
10
+ title ||= self.title
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ Session::Events::ContextSkipped.build(title, process_id:, time:)
15
+ end
16
+
17
+ def self.random
18
+ Random.example
19
+ end
20
+
21
+ def self.title
22
+ Title::Context.example
23
+ end
24
+
25
+ def self.process_id
26
+ ProcessID.example
27
+ end
28
+
29
+ def self.time
30
+ Time.example
31
+ end
32
+
33
+ module Random
34
+ extend EventData
35
+
36
+ def self.example(title: nil, process_id: nil, time: nil)
37
+ process_id ||= ProcessID.random
38
+ time ||= Time.random
39
+ title ||= Title::Context.random
40
+
41
+ ContextSkipped.example(title:, process_id:, time:)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,66 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module ContextStarted
7
+ extend EventData
8
+
9
+ def self.example(title: nil, process_id: nil, time: nil)
10
+ process_id ||= self.process_id
11
+ time ||= self.time
12
+
13
+ if title == :none
14
+ title = nil
15
+ else
16
+ title ||= self.title
17
+ end
18
+
19
+ Session::Events::ContextStarted.build(title, process_id:, time:)
20
+ end
21
+
22
+ def self.random
23
+ Random.example
24
+ end
25
+
26
+ def self.title
27
+ Title::Context.example
28
+ end
29
+
30
+ def self.process_id
31
+ ProcessID.example
32
+ end
33
+
34
+ def self.time
35
+ Time.example
36
+ end
37
+
38
+ module Random
39
+ extend EventData
40
+
41
+ def self.example(title: nil, process_id: nil, time: nil)
42
+ process_id ||= ProcessID.random
43
+ time ||= Time.random
44
+ title ||= Title::Context.random
45
+
46
+ ContextStarted.example(title:, process_id:, time:)
47
+ end
48
+ end
49
+
50
+ module NoTitle
51
+ extend EventData
52
+
53
+ def self.example(**arguments)
54
+ ContextStarted.example(title: :none, **arguments)
55
+ end
56
+
57
+ def self.random
58
+ Random.example(title: :none)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end