test_bench-session 2.0.0.0 → 2.1.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench/session/controls/comment.rb +93 -4
  3. data/lib/test_bench/session/controls/detail.rb +79 -4
  4. data/lib/test_bench/session/controls/event.rb +7 -0
  5. data/lib/test_bench/session/controls/events/commented.rb +91 -10
  6. data/lib/test_bench/session/controls/events/context_finished.rb +49 -11
  7. data/lib/test_bench/session/controls/events/context_skipped.rb +26 -8
  8. data/lib/test_bench/session/controls/events/context_started.rb +44 -9
  9. data/lib/test_bench/session/controls/events/detailed.rb +91 -10
  10. data/lib/test_bench/session/controls/{capture_sink/event.rb → events/event_data.rb} +2 -2
  11. data/lib/test_bench/session/controls/events/failed.rb +27 -15
  12. data/lib/test_bench/session/controls/events/fixture_finished.rb +32 -11
  13. data/lib/test_bench/session/controls/events/fixture_started.rb +26 -8
  14. data/lib/test_bench/session/controls/events/test_finished.rb +49 -11
  15. data/lib/test_bench/session/controls/events/test_skipped.rb +26 -8
  16. data/lib/test_bench/session/controls/events/test_started.rb +44 -9
  17. data/lib/test_bench/session/controls/events.rb +15 -9
  18. data/lib/test_bench/session/controls/exception.rb +28 -10
  19. data/lib/test_bench/session/controls/failure.rb +5 -16
  20. data/lib/test_bench/session/controls/fixture.rb +7 -4
  21. data/lib/test_bench/session/controls/output/detail.rb +29 -0
  22. data/lib/test_bench/session/controls/output.rb +55 -0
  23. data/lib/test_bench/session/controls/random.rb +1 -1
  24. data/lib/test_bench/session/controls/result.rb +15 -4
  25. data/lib/test_bench/session/controls/{capture_sink → substitute}/path.rb +6 -3
  26. data/lib/test_bench/session/controls/title.rb +24 -12
  27. data/lib/test_bench/session/controls.rb +12 -12
  28. data/lib/test_bench/session/events.rb +7 -14
  29. data/lib/test_bench/session/output/get.rb +27 -0
  30. data/lib/test_bench/session/output/writer/buffer/interactive/viewport.rb +164 -0
  31. data/lib/test_bench/session/output/writer/buffer/interactive.rb +139 -0
  32. data/lib/test_bench/session/output/writer/buffer.rb +27 -0
  33. data/lib/test_bench/session/output/writer/defaults.rb +17 -0
  34. data/lib/test_bench/session/output/writer/substitute.rb +17 -0
  35. data/lib/test_bench/session/output/writer.rb +95 -0
  36. data/lib/test_bench/session/output.rb +375 -0
  37. data/lib/test_bench/session/projection.rb +28 -0
  38. data/lib/test_bench/session/session.rb +51 -65
  39. data/lib/test_bench/session/store.rb +59 -0
  40. data/lib/test_bench/session/substitute/path.rb +63 -0
  41. data/lib/test_bench/session/substitute/sink.rb +104 -0
  42. data/lib/test_bench/session/substitute.rb +17 -34
  43. data/lib/test_bench/session.rb +16 -5
  44. metadata +22 -17
  45. data/lib/test_bench/session/controls/capture_sink/record.rb +0 -19
  46. data/lib/test_bench/session/controls/events/aborted.rb +0 -29
  47. data/lib/test_bench/session/controls/events/file_finished.rb +0 -32
  48. data/lib/test_bench/session/controls/events/file_started.rb +0 -29
  49. data/lib/test_bench/session/controls/events/finished.rb +0 -32
  50. data/lib/test_bench/session/controls/events/started.rb +0 -29
  51. data/lib/test_bench/session/controls/file.rb +0 -58
  52. data/lib/test_bench/session/telemetry/capture_sink/path.rb +0 -65
  53. data/lib/test_bench/session/telemetry/capture_sink/record.rb +0 -39
  54. data/lib/test_bench/session/telemetry/capture_sink.rb +0 -63
@@ -3,31 +3,43 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module Failed
6
- def self.example(message: nil, path: nil, line_number: nil, process_id: nil, time: nil)
6
+ extend EventData
7
+
8
+ def self.example(message: nil, process_id: nil, time: nil)
7
9
  message ||= self.message
8
- path ||= self.path
9
- line_number ||= self.line_number
10
10
  process_id ||= self.process_id
11
11
  time ||= self.time
12
12
 
13
- Session::Events::Failed.new(message, path, line_number, process_id, time)
13
+ Session::Events::Failed.build(message, process_id:, time:)
14
14
  end
15
15
 
16
16
  def self.random
17
- message = Failure::Message.random
18
- path = Failure::Path.random
19
- line_number = Failure::LineNumber.random
20
- process_id = ProcessID.random
21
- time = Time.random
17
+ Random.example
18
+ end
22
19
 
23
- example(message:, path:, line_number:, process_id:, time:)
20
+ def self.message
21
+ Failure::Message.example
24
22
  end
25
23
 
26
- def self.message = Failure::Message.example
27
- def self.path = Failure::Path.example
28
- def self.line_number = Failure::LineNumber.example
29
- def self.process_id = ProcessID.example
30
- def self.time = Time.example
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(message: nil, process_id: nil, time: nil)
36
+ message ||= Failure::Message.random
37
+ process_id ||= ProcessID.random
38
+ time ||= Time.random
39
+
40
+ Failed.example(message:, process_id:, time:)
41
+ end
42
+ end
31
43
  end
32
44
  end
33
45
  end
@@ -3,28 +3,49 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module FixtureFinished
6
+ extend EventData
7
+
6
8
  def self.example(name: nil, result: nil, process_id: nil, time: nil)
7
9
  name ||= self.name
8
- result ||= self.result
10
+ result = self.result if result.nil?
9
11
  process_id ||= self.process_id
10
12
  time ||= self.time
11
13
 
12
- Session::Events::FixtureFinished.new(name, result, process_id, time)
14
+ Session::Events::FixtureFinished.build(name, result, process_id:, time:)
13
15
  end
14
16
 
15
17
  def self.random
16
- name = Fixture::Name.random
17
- result = Result.random
18
- process_id = ProcessID.random
19
- time = Time.random
18
+ Random.example
19
+ end
20
+
21
+ def self.name
22
+ Fixture::Name.example
23
+ end
24
+
25
+ def self.result
26
+ Result.example
27
+ end
20
28
 
21
- example(name:, result:, process_id:, time:)
29
+ def self.process_id
30
+ ProcessID.example
22
31
  end
23
32
 
24
- def self.name = Fixture::Name.example
25
- def self.result = Result.example
26
- def self.process_id = ProcessID.example
27
- def self.time = Time.example
33
+ def self.time
34
+ Time.example
35
+ end
36
+
37
+ module Random
38
+ extend EventData
39
+
40
+ def self.example(name: nil, result: nil, process_id: nil, time: nil)
41
+ name ||= Fixture::Name.random
42
+ result ||= Result.random
43
+ process_id ||= ProcessID.random
44
+ time ||= Time.random
45
+
46
+ FixtureFinished.example(name:, result:, process_id:, time:)
47
+ end
48
+ end
28
49
  end
29
50
  end
30
51
  end
@@ -3,25 +3,43 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module FixtureStarted
6
+ extend EventData
7
+
6
8
  def self.example(name: nil, process_id: nil, time: nil)
7
9
  name ||= self.name
8
10
  process_id ||= self.process_id
9
11
  time ||= self.time
10
12
 
11
- Session::Events::FixtureStarted.new(name, process_id, time)
13
+ Session::Events::FixtureStarted.build(name, process_id:, time:)
12
14
  end
13
15
 
14
16
  def self.random
15
- name = Fixture::Name.random
16
- process_id = ProcessID.random
17
- time = Time.random
17
+ Random.example
18
+ end
18
19
 
19
- example(name:, process_id:, time:)
20
+ def self.name
21
+ Fixture::Name.example
20
22
  end
21
23
 
22
- def self.name = Fixture::Name.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(name: nil, process_id: nil, time: nil)
36
+ name ||= Fixture::Name.random
37
+ process_id ||= ProcessID.random
38
+ time ||= Time.random
39
+
40
+ FixtureStarted.example(name:, process_id:, time:)
41
+ end
42
+ end
25
43
  end
26
44
  end
27
45
  end
@@ -3,28 +3,66 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module TestFinished
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, result: nil, process_id: nil, time: nil)
7
- title ||= self.title
8
9
  result = self.result if result.nil?
9
10
  process_id ||= self.process_id
10
11
  time ||= self.time
11
12
 
12
- Session::Events::TestFinished.new(title, result, process_id, time)
13
+ if title == :none
14
+ title = nil
15
+ else
16
+ title ||= self.title
17
+ end
18
+
19
+ Session::Events::TestFinished.build(title, result, process_id:, time:)
13
20
  end
14
21
 
15
22
  def self.random
16
- title = Title::Test.random
17
- result = Result.random
18
- process_id = ProcessID.random
19
- time = Time.random
23
+ Random.example
24
+ end
25
+
26
+ def self.title
27
+ Title::Test.example
28
+ end
29
+
30
+ def self.result
31
+ Result.example
32
+ end
33
+
34
+ def self.process_id
35
+ ProcessID.example
36
+ end
37
+
38
+ def self.time
39
+ Time.example
40
+ end
41
+
42
+ module Random
43
+ extend EventData
20
44
 
21
- example(title:, result:, process_id:, time:)
45
+ def self.example(title: nil, result: nil, process_id: nil, time: nil)
46
+ result ||= Result.random
47
+ process_id ||= ProcessID.random
48
+ time ||= Time.random
49
+ title ||= Title::Test.random
50
+
51
+ TestFinished.example(title:, result:, process_id:, time:)
52
+ end
22
53
  end
23
54
 
24
- def self.title = Title::Test.example
25
- def self.result = Result.example
26
- def self.process_id = ProcessID.example
27
- def self.time = Time.example
55
+ module NoTitle
56
+ extend EventData
57
+
58
+ def self.example(**arguments)
59
+ TestFinished.example(title: :none, **arguments)
60
+ end
61
+
62
+ def self.random
63
+ Random.example(title: :none)
64
+ end
65
+ end
28
66
  end
29
67
  end
30
68
  end
@@ -3,25 +3,43 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module TestSkipped
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, process_id: nil, time: nil)
7
9
  title ||= self.title
8
10
  process_id ||= self.process_id
9
11
  time ||= self.time
10
12
 
11
- Session::Events::TestSkipped.new(title, process_id, time)
13
+ Session::Events::TestSkipped.build(title, process_id:, time:)
12
14
  end
13
15
 
14
16
  def self.random
15
- title = Title::Test.random
16
- process_id = ProcessID.random
17
- time = Time.random
17
+ Random.example
18
+ end
18
19
 
19
- example(title:, process_id:, time:)
20
+ def self.title
21
+ Title::Test.example
20
22
  end
21
23
 
22
- def self.title = Title::Test.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(title: nil, process_id: nil, time: nil)
36
+ process_id ||= ProcessID.random
37
+ time ||= Time.random
38
+ title ||= Title::Test.random
39
+
40
+ TestSkipped.example(title:, process_id:, time:)
41
+ end
42
+ end
25
43
  end
26
44
  end
27
45
  end
@@ -3,25 +3,60 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module TestStarted
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, process_id: nil, time: nil)
7
- title ||= self.title
8
9
  process_id ||= self.process_id
9
10
  time ||= self.time
10
11
 
11
- Session::Events::TestStarted.new(title, process_id, time)
12
+ if title == :none
13
+ title = nil
14
+ else
15
+ title ||= self.title
16
+ end
17
+
18
+ Session::Events::TestStarted.build(title, process_id:, time:)
12
19
  end
13
20
 
14
21
  def self.random
15
- title = Title::Test.random
16
- process_id = ProcessID.random
17
- time = Time.random
22
+ Random.example
23
+ end
24
+
25
+ def self.title
26
+ Title::Test.example
27
+ end
28
+
29
+ def self.process_id
30
+ ProcessID.example
31
+ end
18
32
 
19
- example(title:, process_id:, time:)
33
+ def self.time
34
+ Time.example
20
35
  end
21
36
 
22
- def self.title = Title::Test.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
37
+ module Random
38
+ extend EventData
39
+
40
+ def self.example(title: nil, process_id: nil, time: nil)
41
+ process_id ||= ProcessID.random
42
+ time ||= Time.random
43
+ title ||= Title::Test.random
44
+
45
+ TestStarted.example(title:, process_id:, time:)
46
+ end
47
+ end
48
+
49
+ module NoTitle
50
+ extend EventData
51
+
52
+ def self.example(**arguments)
53
+ TestStarted.example(title: :none, **arguments)
54
+ end
55
+
56
+ def self.random
57
+ Random.example(title: :none)
58
+ end
59
+ end
25
60
  end
26
61
  end
27
62
  end
@@ -5,21 +5,27 @@ module TestBench
5
5
  def self.examples(random: nil)
6
6
  random ||= false
7
7
 
8
- if random
9
- method_name = :random
10
- else
11
- method_name = :example
12
- end
8
+ events = []
9
+
10
+ Session::Events.each_type do |event_type|
11
+ control = Events.const_get(event_type, false)
13
12
 
14
- controls = Session::Events.each_type.map do |event_type|
15
- Events.const_get(event_type, false)
13
+ if random
14
+ event = control.random
15
+ else
16
+ event = control.example
17
+ end
18
+
19
+ events << event
16
20
  end
17
21
 
18
- controls.map(&method_name)
22
+ events
19
23
  end
20
24
 
21
25
  def self.each_example(random: nil, &block)
22
- examples(random:).each(&block)
26
+ examples = examples(random:)
27
+
28
+ examples.each(&block)
23
29
  end
24
30
  end
25
31
  end
@@ -2,25 +2,43 @@ module TestBench
2
2
  class Session
3
3
  module Controls
4
4
  module Exception
5
- def self.example(message=nil)
5
+ def self.example(message: nil, exception_class: nil)
6
6
  message ||= self.message
7
+ exception_class ||= Example
7
8
 
8
- Example.new(message)
9
+ exception_class.new(message)
9
10
  end
10
- def self.random = example(Message.random)
11
11
 
12
- def self.message = "Some message"
12
+ def self.other_example
13
+ exception_class = OtherExample
13
14
 
14
- module Message
15
- def self.example(suffix=nil)
16
- suffix = " #{suffix}" if not suffix.nil?
15
+ example(exception_class:)
16
+ end
17
17
 
18
- "Some exception message#{suffix}"
19
- end
20
- def self.random = example(Controls::Random.string)
18
+ def self.random
19
+ message = Message.random
20
+
21
+ example(message:)
22
+ end
23
+
24
+ def self.message
25
+ Message.example
21
26
  end
22
27
 
23
28
  Example = Class.new(RuntimeError)
29
+ OtherExample = Class.new(RuntimeError)
30
+
31
+ module Message
32
+ def self.example
33
+ "Some exception"
34
+ end
35
+
36
+ def self.random
37
+ suffix = Random.string
38
+
39
+ "#{example} #{suffix}"
40
+ end
41
+ end
24
42
  end
25
43
  end
26
44
  end
@@ -3,26 +3,15 @@ module TestBench
3
3
  module Controls
4
4
  module Failure
5
5
  module Message
6
- def self.example(suffix=nil)
7
- suffix = " #{suffix}" if not suffix.nil?
8
-
9
- "Some failure message#{suffix}"
6
+ def self.example
7
+ "Some failure message"
10
8
  end
11
- def self.random = example(Controls::Random.string)
12
- end
13
9
 
14
- module Path
15
- def self.example(suffix=nil)
16
- suffix = "_#{suffix}" if not suffix.nil?
10
+ def self.random
11
+ suffix = Random.string
17
12
 
18
- "path/to/some_file#{suffix}.rb"
13
+ "#{example} #{suffix}"
19
14
  end
20
- def self.random = example(Controls::Random.string)
21
- end
22
-
23
- module LineNumber
24
- def self.example = 11
25
- def self.random = Controls::Random.integer % 1111
26
15
  end
27
16
  end
28
17
  end
@@ -3,12 +3,15 @@ module TestBench
3
3
  module Controls
4
4
  module Fixture
5
5
  module Name
6
- def self.example(suffix=nil)
7
- suffix = "_#{suffix}" if not suffix.nil?
6
+ def self.example
7
+ "SomeNamespace::SomeFixture"
8
+ end
9
+
10
+ def self.random
11
+ suffix = Random.string
8
12
 
9
- "SomeNamespace::SomeFixture#{suffix}"
13
+ "#{example}_#{suffix}"
10
14
  end
11
- def self.random = example(Random.string)
12
15
  end
13
16
  end
14
17
  end
@@ -0,0 +1,29 @@
1
+ module TestBench
2
+ class Session
3
+ module Controls
4
+ module Output
5
+ module Detail
6
+ def self.example
7
+ Session::Output::Detail.on
8
+ end
9
+
10
+ def self.other_example
11
+ Session::Output::Detail.off
12
+ end
13
+
14
+ def self.random
15
+ details = [
16
+ Session::Output::Detail.on,
17
+ Session::Output::Detail.off,
18
+ Session::Output::Detail.failure
19
+ ]
20
+
21
+ index = Random.integer % details.count
22
+
23
+ details[index]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,55 @@
1
+ module TestBench
2
+ class Session
3
+ module Controls
4
+ module Output
5
+ Device = TestBench::Output::Controls::Device
6
+ Data = TestBench::Output::Controls::Data
7
+ Styling = TestBench::Output::Controls::Styling
8
+ Style = TestBench::Output::Controls::Style
9
+ Text = TestBench::Output::Controls::Text
10
+
11
+ def self.example(details: nil, styling: nil, mode: nil)
12
+ styling ||= false
13
+
14
+ output = Session::Output.new
15
+
16
+ if details == true
17
+ output.detail_policy = Session::Output::Detail.on
18
+ elsif details == false
19
+ output.detail_policy = Session::Output::Detail.off
20
+ else
21
+ output.detail_policy = Session::Output::Detail.failure
22
+ end
23
+
24
+ if styling
25
+ output.writer.styling!
26
+ end
27
+
28
+ if not mode.nil?
29
+ output.mode = mode
30
+ end
31
+
32
+ output
33
+ end
34
+
35
+ module Styling
36
+ def self.example
37
+ Output.example(styling:)
38
+ end
39
+
40
+ def self.styling
41
+ true
42
+ end
43
+ end
44
+
45
+ module Pending
46
+ def self.example
47
+ output = Styling.example
48
+ output.pending_writer.buffer.limit = nil
49
+ output
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,7 +1,7 @@
1
1
  module TestBench
2
2
  class Session
3
3
  module Controls
4
- Random = TestBench::Telemetry::Controls::Random
4
+ Random = TestBench::Output::Controls::Random
5
5
  end
6
6
  end
7
7
  end
@@ -2,10 +2,21 @@ module TestBench
2
2
  class Session
3
3
  module Controls
4
4
  module Result
5
- def self.example = pass
6
- def self.pass = true
7
- def self.failure = false
8
- def self.random = Random.boolean
5
+ def self.example
6
+ pass
7
+ end
8
+
9
+ def self.pass
10
+ true
11
+ end
12
+
13
+ def self.failure
14
+ false
15
+ end
16
+
17
+ def self.random
18
+ Random.boolean
19
+ end
9
20
  end
10
21
  end
11
22
  end
@@ -1,14 +1,14 @@
1
1
  module TestBench
2
2
  class Session
3
3
  module Controls
4
- module CaptureSink
4
+ module Substitute
5
5
  module Path
6
6
  def self.example(segments=nil)
7
7
  segments ||= Segment.examples
8
8
 
9
9
  segments = segments.dup
10
10
 
11
- path = TestBench::Session::Telemetry::CaptureSink::Path.new
11
+ path = TestBench::Session::Substitute::Path.new
12
12
  path.segments = segments
13
13
  path
14
14
  end
@@ -18,9 +18,12 @@ module TestBench
18
18
  [example, Context.other_example, Test.example]
19
19
  end
20
20
 
21
- def self.example = Context.example
21
+ def self.example
22
+ Context.example
23
+ end
22
24
 
23
25
  Test = Title::Test
26
+
24
27
  Context = Title::Context
25
28
  end
26
29
  end