test_bench-session 2.0.0.0 → 2.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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