vedeu 0.6.1 → 0.6.2

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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vedeu/all.rb +2 -13
  3. data/lib/vedeu/api.rb +9 -9
  4. data/lib/vedeu/application/application_view.rb +3 -5
  5. data/lib/vedeu/bindings/bindings.rb +5 -1
  6. data/lib/vedeu/bindings/focus.rb +0 -5
  7. data/lib/vedeu/bindings/refresh.rb +0 -5
  8. data/lib/vedeu/bindings/system.rb +1 -6
  9. data/lib/vedeu/colours/all.rb +17 -0
  10. data/lib/vedeu/colours/background.rb +32 -28
  11. data/lib/vedeu/colours/backgrounds.rb +13 -9
  12. data/lib/vedeu/colours/colour.rb +106 -102
  13. data/lib/vedeu/colours/foreground.rb +32 -28
  14. data/lib/vedeu/colours/foregrounds.rb +13 -9
  15. data/lib/vedeu/colours/repository.rb +70 -0
  16. data/lib/vedeu/colours/translator.rb +267 -0
  17. data/lib/vedeu/configuration/api.rb +10 -7
  18. data/lib/vedeu/configuration/configuration.rb +2 -1
  19. data/lib/vedeu/dsl/border.rb +15 -2
  20. data/lib/vedeu/dsl/composition.rb +6 -4
  21. data/lib/vedeu/dsl/geometry.rb +14 -7
  22. data/lib/vedeu/dsl/group.rb +2 -2
  23. data/lib/vedeu/dsl/interface.rb +5 -3
  24. data/lib/vedeu/dsl/keymap.rb +9 -7
  25. data/lib/vedeu/dsl/line.rb +7 -4
  26. data/lib/vedeu/dsl/menu.rb +3 -0
  27. data/lib/vedeu/dsl/presentation.rb +20 -10
  28. data/lib/vedeu/dsl/shared.rb +4 -4
  29. data/lib/vedeu/dsl/stream.rb +2 -2
  30. data/lib/vedeu/dsl/text.rb +11 -5
  31. data/lib/vedeu/dsl/use.rb +2 -2
  32. data/lib/vedeu/dsl/view.rb +8 -6
  33. data/lib/vedeu/events/aliases.rb +91 -0
  34. data/lib/vedeu/events/all.rb +15 -0
  35. data/lib/vedeu/events/collection.rb +13 -0
  36. data/lib/vedeu/events/event.rb +244 -239
  37. data/lib/vedeu/events/repository.rb +30 -0
  38. data/lib/vedeu/events/trigger.rb +68 -64
  39. data/lib/vedeu/exceptions.rb +65 -54
  40. data/lib/vedeu/geometry/coordinate.rb +3 -1
  41. data/lib/vedeu/geometry/grid.rb +2 -4
  42. data/lib/vedeu/input/editor/all.rb +2 -1
  43. data/lib/vedeu/input/editor/{virtual_cursor.rb → cursor.rb} +10 -10
  44. data/lib/vedeu/input/editor/document.rb +7 -7
  45. data/lib/vedeu/input/editor/insert.rb +70 -0
  46. data/lib/vedeu/input/editor/line.rb +4 -16
  47. data/lib/vedeu/input/editor/lines.rb +2 -16
  48. data/lib/vedeu/input/input_translator.rb +2 -2
  49. data/lib/vedeu/input/key.rb +2 -2
  50. data/lib/vedeu/internal_api.rb +6 -6
  51. data/lib/vedeu/log/lockless_log_device.rb +0 -74
  52. data/lib/vedeu/models/focus.rb +3 -3
  53. data/lib/vedeu/models/interface.rb +3 -3
  54. data/lib/vedeu/models/menu.rb +2 -2
  55. data/lib/vedeu/models/views/char.rb +1 -1
  56. data/lib/vedeu/models/views/composition.rb +1 -1
  57. data/lib/vedeu/models/views/line.rb +1 -1
  58. data/lib/vedeu/models/views/stream.rb +1 -1
  59. data/lib/vedeu/models/views/view.rb +6 -7
  60. data/lib/vedeu/output/presentation/colour.rb +23 -21
  61. data/lib/vedeu/output/renderers/renderer_options.rb +2 -4
  62. data/lib/vedeu/output/text.rb +1 -1
  63. data/lib/vedeu/output/wordwrap.rb +18 -7
  64. data/lib/vedeu/plugins/plugin.rb +2 -2
  65. data/lib/vedeu/refresh/refresh_buffer.rb +3 -3
  66. data/lib/vedeu/refresh/refresh_group.rb +3 -3
  67. data/lib/vedeu/repositories/repository.rb +7 -6
  68. data/lib/vedeu/runtime/application.rb +1 -1
  69. data/lib/vedeu/runtime/main_loop.rb +3 -3
  70. data/lib/vedeu/runtime/router.rb +14 -11
  71. data/lib/vedeu/templating/helpers.rb +5 -5
  72. data/lib/vedeu/templating/template.rb +4 -4
  73. data/lib/vedeu/templating/view_template.rb +1 -1
  74. data/lib/vedeu/terminal/terminal.rb +2 -2
  75. data/lib/vedeu/version.rb +1 -1
  76. data/test/lib/vedeu/application/application_view_test.rb +1 -1
  77. data/test/lib/vedeu/colours/background_test.rb +93 -89
  78. data/test/lib/vedeu/colours/backgrounds_test.rb +11 -7
  79. data/test/lib/vedeu/colours/colour_test.rb +155 -151
  80. data/test/lib/vedeu/colours/foreground_test.rb +93 -89
  81. data/test/lib/vedeu/colours/foregrounds_test.rb +11 -7
  82. data/test/lib/vedeu/colours/repository_test.rb +97 -0
  83. data/test/lib/vedeu/colours/translator_test.rb +173 -0
  84. data/test/lib/vedeu/configuration/api_test.rb +4 -4
  85. data/test/lib/vedeu/dsl/border_test.rb +12 -0
  86. data/test/lib/vedeu/dsl/composition_test.rb +3 -3
  87. data/test/lib/vedeu/dsl/geometry_test.rb +11 -0
  88. data/test/lib/vedeu/dsl/group_test.rb +2 -2
  89. data/test/lib/vedeu/dsl/interface_test.rb +4 -4
  90. data/test/lib/vedeu/dsl/keymap_test.rb +8 -4
  91. data/test/lib/vedeu/dsl/line_test.rb +6 -3
  92. data/test/lib/vedeu/dsl/menu_test.rb +6 -0
  93. data/test/lib/vedeu/dsl/presentation_test.rb +16 -3
  94. data/test/lib/vedeu/dsl/stream_test.rb +1 -1
  95. data/test/lib/vedeu/dsl/text_test.rb +7 -0
  96. data/test/lib/vedeu/dsl/view_test.rb +3 -3
  97. data/test/lib/vedeu/events/aliases_test.rb +144 -0
  98. data/test/lib/vedeu/events/collection_test.rb +22 -0
  99. data/test/lib/vedeu/events/event_test.rb +84 -80
  100. data/test/lib/vedeu/events/repository_test.rb +28 -0
  101. data/test/lib/vedeu/events/trigger_test.rb +41 -37
  102. data/test/lib/vedeu/geometry/grid_test.rb +4 -4
  103. data/test/lib/vedeu/input/editor/{virtual_cursor_test.rb → cursor_test.rb} +3 -3
  104. data/test/lib/vedeu/input/editor/insert_test.rb +36 -0
  105. data/test/lib/vedeu/input/key_test.rb +1 -1
  106. data/test/lib/vedeu/models/cell_test.rb +1 -1
  107. data/test/lib/vedeu/models/focus_test.rb +4 -2
  108. data/test/lib/vedeu/models/menu_test.rb +1 -1
  109. data/test/lib/vedeu/models/views/char_test.rb +8 -4
  110. data/test/lib/vedeu/models/views/line_test.rb +4 -4
  111. data/test/lib/vedeu/models/views/stream_test.rb +3 -3
  112. data/test/lib/vedeu/models/views/view_test.rb +1 -1
  113. data/test/lib/vedeu/output/html_char_test.rb +4 -2
  114. data/test/lib/vedeu/output/presentation/colour_test.rb +5 -5
  115. data/test/lib/vedeu/output/presentation_test.rb +4 -4
  116. data/test/lib/vedeu/output/renderers/json_test.rb +4 -2
  117. data/test/lib/vedeu/plugins/plugin_test.rb +1 -1
  118. data/test/lib/vedeu/refresh/refresh_buffer_test.rb +1 -1
  119. data/test/lib/vedeu/refresh/refresh_group_test.rb +1 -1
  120. data/test/lib/vedeu/repositories/repository_test.rb +2 -2
  121. data/test/lib/vedeu/runtime/router_test.rb +6 -6
  122. data/test/lib/vedeu/templating/decoder_test.rb +2 -3
  123. data/test/lib/vedeu/templating/encoder_test.rb +2 -3
  124. data/test/lib/vedeu/templating/helpers_test.rb +6 -6
  125. data/test/lib/vedeu/templating/template_test.rb +2 -2
  126. data/test/lib/vedeu/templating/view_template_test.rb +13 -7
  127. data/test/lib/vedeu/terminal/terminal_test.rb +3 -3
  128. metadata +24 -19
  129. data/lib/vedeu/colours/colour_translator.rb +0 -260
  130. data/lib/vedeu/colours/colours.rb +0 -66
  131. data/lib/vedeu/events/event_aliases.rb +0 -87
  132. data/lib/vedeu/events/event_collection.rb +0 -9
  133. data/lib/vedeu/events/events.rb +0 -26
  134. data/test/lib/vedeu/colours/colour_translator_test.rb +0 -169
  135. data/test/lib/vedeu/colours/colours_test.rb +0 -93
  136. data/test/lib/vedeu/events/event_aliases_test.rb +0 -140
  137. data/test/lib/vedeu/events/event_collection_test.rb +0 -18
  138. data/test/lib/vedeu/events/events_test.rb +0 -24
@@ -23,6 +23,7 @@ module Vedeu
23
23
  subject { instance.centred(true) }
24
24
 
25
25
  it { instance.must_respond_to(:centred!) }
26
+ it { instance.must_respond_to(:centred=) }
26
27
 
27
28
  it 'sets the attribute to the value' do
28
29
  subject.must_equal(true)
@@ -76,6 +77,8 @@ module Vedeu
76
77
  describe '#height' do
77
78
  subject { instance.height(6) }
78
79
 
80
+ it { instance.must_respond_to(:height=) }
81
+
79
82
  it 'sets the attribute to the value' do
80
83
  subject.call.must_equal(6)
81
84
  end
@@ -137,6 +140,8 @@ module Vedeu
137
140
  describe '#width' do
138
141
  subject { instance.width(25) }
139
142
 
143
+ it { instance.must_respond_to(:width=) }
144
+
140
145
  it 'sets the attribute to the value' do
141
146
  subject.call.must_equal(25)
142
147
  end
@@ -159,6 +164,8 @@ module Vedeu
159
164
  describe '#x' do
160
165
  subject { instance.x(2) }
161
166
 
167
+ it { instance.must_respond_to(:x=) }
168
+
162
169
  it 'sets the attribute to the value' do
163
170
  subject.must_equal(2)
164
171
  end
@@ -215,6 +222,8 @@ module Vedeu
215
222
  describe '#y' do
216
223
  subject { instance.y(5) }
217
224
 
225
+ it { instance.must_respond_to(:y=) }
226
+
218
227
  it 'sets the attribute to the value' do
219
228
  subject.must_equal(5)
220
229
  end
@@ -271,6 +280,7 @@ module Vedeu
271
280
  describe '#xn' do
272
281
  subject { instance.xn(15) }
273
282
 
283
+ it { instance.must_respond_to(:xn=) }
274
284
  it { subject.must_equal(15) }
275
285
 
276
286
  context 'when a block is given' do
@@ -289,6 +299,7 @@ module Vedeu
289
299
  describe '#yn' do
290
300
  subject { instance.yn(8) }
291
301
 
302
+ it { instance.must_respond_to(:yn=) }
292
303
  it { subject.must_equal(8) }
293
304
 
294
305
  context 'when a block is given' do
@@ -31,7 +31,7 @@ module Vedeu
31
31
  context 'when the block is not given' do
32
32
  subject { described.group(group_name) }
33
33
 
34
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
34
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
35
35
  end
36
36
  end
37
37
 
@@ -74,7 +74,7 @@ module Vedeu
74
74
  end
75
75
  }
76
76
 
77
- it { proc { subject }.must_raise(Vedeu::MissingRequired) }
77
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
78
78
  end
79
79
 
80
80
  context 'it adds interface names to the group' do
@@ -34,7 +34,7 @@ module Vedeu
34
34
  context 'when the block is not given' do
35
35
  subject { described.interface('flourine') }
36
36
 
37
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
37
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
38
38
  end
39
39
 
40
40
  context 'when the name is not given' do
@@ -44,7 +44,7 @@ module Vedeu
44
44
  end
45
45
  }
46
46
 
47
- it { proc { subject }.must_raise(Vedeu::MissingRequired) }
47
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
48
48
  end
49
49
  end
50
50
 
@@ -54,7 +54,7 @@ module Vedeu
54
54
  context 'when the block is not given' do
55
55
  subject { instance.border }
56
56
 
57
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
57
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
58
58
  end
59
59
 
60
60
  context 'when the block is given' do
@@ -182,7 +182,7 @@ module Vedeu
182
182
  context 'when the required block is not provided' do
183
183
  subject { instance.geometry }
184
184
 
185
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
185
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
186
186
  end
187
187
 
188
188
  context 'when the block is given' do
@@ -20,28 +20,30 @@ module Vedeu
20
20
 
21
21
  subject { instance.key(*value_or_values) { :some_action } }
22
22
 
23
+ it { instance.must_respond_to(:key=) }
24
+
23
25
  context 'when a block was not given' do
24
26
  subject { instance.key(value_or_values) }
25
27
 
26
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
28
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
27
29
  end
28
30
 
29
31
  context 'when a key was not given' do
30
32
  let(:value_or_values) {}
31
33
 
32
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
34
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
33
35
  end
34
36
 
35
37
  context 'when an invalid key was given (nil)' do
36
38
  let(:value_or_values) { ['v', nil] }
37
39
 
38
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
40
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
39
41
  end
40
42
 
41
43
  context 'when an invalid key was given (empty)' do
42
44
  let(:value_or_values) { ['v', ''] }
43
45
 
44
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
46
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
45
47
  end
46
48
 
47
49
  context 'when the key is valid (not already defined)' do
@@ -59,6 +61,8 @@ module Vedeu
59
61
 
60
62
  subject { instance.name(_value) }
61
63
 
64
+ it { instance.must_respond_to(:name=) }
65
+
62
66
  it 'defines the name of the keymap' do
63
67
  subject
64
68
  model.name.must_equal(_value)
@@ -10,7 +10,7 @@ module Vedeu
10
10
  let(:instance) { described.new(model) }
11
11
  let(:model) { Vedeu::Views::Line.new(attributes) }
12
12
  let(:client) {}
13
- let(:colour) { Vedeu::Colour.new }
13
+ let(:colour) { Vedeu::Colours::Colour.new }
14
14
  let(:parent) { Vedeu::Views::View.new }
15
15
  let(:style) { Vedeu::Style.new }
16
16
  let(:_value) { [] }
@@ -42,6 +42,7 @@ module Vedeu
42
42
 
43
43
  it { subject.must_be_instance_of(Vedeu::Views::Lines) }
44
44
  it { subject[0].must_be_instance_of(Vedeu::Views::Line) }
45
+ it { instance.must_respond_to(:line=) }
45
46
 
46
47
  context 'when the block is given' do
47
48
  end
@@ -56,7 +57,7 @@ module Vedeu
56
57
 
57
58
  subject { instance.line(_value) }
58
59
 
59
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
60
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
60
61
  end
61
62
  end
62
63
  end
@@ -74,10 +75,12 @@ module Vedeu
74
75
  end
75
76
 
76
77
  context 'when the block is not given' do
77
- it { proc { instance.streams }.must_raise(Vedeu::InvalidSyntax) }
78
+ it { proc { instance.streams }.must_raise(Vedeu::Error::InvalidSyntax) }
78
79
  end
79
80
 
80
81
  it { instance.must_respond_to(:stream) }
82
+ it { instance.must_respond_to(:stream=) }
83
+ it { instance.must_respond_to(:streams=) }
81
84
  end
82
85
 
83
86
  end # Line
@@ -28,6 +28,8 @@ module Vedeu
28
28
 
29
29
  subject { instance.item(_value) }
30
30
 
31
+ it { instance.must_respond_to(:item=) }
32
+
31
33
  context 'when items are provided' do
32
34
  it { subject.must_equal([:sodium,
33
35
  :magnesium,
@@ -42,6 +44,8 @@ module Vedeu
42
44
 
43
45
  subject { instance.items(_value) }
44
46
 
47
+ it { instance.must_respond_to(:items=) }
48
+
45
49
  context 'when no items are provided' do
46
50
  it { subject.must_equal([]) }
47
51
  end
@@ -58,6 +62,8 @@ module Vedeu
58
62
 
59
63
  subject { instance.name(_value) }
60
64
 
65
+ it { instance.must_respond_to(:name=) }
66
+
61
67
  it 'returns the name of the menu' do
62
68
  subject
63
69
  model.name.must_equal('metals')
@@ -37,7 +37,12 @@ module Vedeu
37
37
 
38
38
  it { instance.must_respond_to(:bg) }
39
39
  it { instance.must_respond_to(:bgcolor) }
40
- it { dsl.colour.background.must_be_instance_of(Vedeu::Background) }
40
+ it { instance.must_respond_to(:bg=) }
41
+ it { instance.must_respond_to(:bgcolor=) }
42
+ it { instance.must_respond_to(:background=) }
43
+ it {
44
+ dsl.colour.background.must_be_instance_of(Vedeu::Colours::Background)
45
+ }
41
46
  it { dsl.colour.background.colour.must_equal(background) }
42
47
  end
43
48
 
@@ -53,7 +58,12 @@ module Vedeu
53
58
 
54
59
  it { instance.must_respond_to(:fg) }
55
60
  it { instance.must_respond_to(:fgcolor) }
56
- it { dsl.colour.foreground.must_be_instance_of(Vedeu::Foreground) }
61
+ it { instance.must_respond_to(:fg=) }
62
+ it { instance.must_respond_to(:fgcolor=) }
63
+ it { instance.must_respond_to(:foreground=) }
64
+ it {
65
+ dsl.colour.foreground.must_be_instance_of(Vedeu::Colours::Foreground)
66
+ }
57
67
  it { dsl.colour.foreground.colour.must_equal(foreground) }
58
68
  end
59
69
 
@@ -62,7 +72,8 @@ module Vedeu
62
72
 
63
73
  subject { instance.colour(attributes) }
64
74
 
65
- it { subject.must_be_instance_of(Vedeu::Colour) }
75
+ it { instance.must_respond_to(:colour=) }
76
+ it { subject.must_be_instance_of(Vedeu::Colours::Colour) }
66
77
 
67
78
  context 'with an empty value' do
68
79
  let(:attributes) { { background: background, foreground: '' } }
@@ -77,7 +88,9 @@ module Vedeu
77
88
 
78
89
  subject { instance.style(args) }
79
90
 
91
+ it { instance.must_respond_to(:style=) }
80
92
  it { instance.must_respond_to(:styles) }
93
+ it { instance.must_respond_to(:styles=) }
81
94
 
82
95
  it { subject.must_be_instance_of(Vedeu::Style) }
83
96
  end
@@ -26,7 +26,7 @@ module Vedeu
26
26
  context 'when the block is not given' do
27
27
  subject { instance.stream }
28
28
 
29
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
29
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
30
30
  end
31
31
  end
32
32
 
@@ -21,6 +21,13 @@ module Vedeu
21
21
 
22
22
  subject { instance.text(_value, options) }
23
23
 
24
+ it { instance.must_respond_to(:text=) }
25
+ it { instance.must_respond_to(:align=) }
26
+ it { instance.must_respond_to(:center=) }
27
+ it { instance.must_respond_to(:centre=) }
28
+ it { instance.must_respond_to(:left=) }
29
+ it { instance.must_respond_to(:right=) }
30
+
24
31
  context 'when the model is a Vedeu::Views::View' do
25
32
  let(:model) { Vedeu::Views::View.new }
26
33
  let(:instance) { Vedeu::DSL::Interface.new(model) }
@@ -26,7 +26,7 @@ module Vedeu
26
26
  context 'when the block is not given' do
27
27
  subject { described.renders }
28
28
 
29
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
29
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
30
30
  end
31
31
 
32
32
  context 'when the block is given' do
@@ -46,7 +46,7 @@ module Vedeu
46
46
  context 'when the block is not given' do
47
47
  subject { described.views }
48
48
 
49
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
49
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
50
50
  end
51
51
 
52
52
  context 'when the block is given' do
@@ -66,7 +66,7 @@ module Vedeu
66
66
  context 'when the required block is not provided' do
67
67
  subject { instance.lines }
68
68
 
69
- it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
69
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
70
70
  end
71
71
 
72
72
  it { instance.must_respond_to(:line) }
@@ -0,0 +1,144 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Events
6
+
7
+ describe Aliases do
8
+
9
+ let(:described) { Vedeu::Events::Aliases }
10
+
11
+ before { described.reset }
12
+ after { Vedeu::Bindings.setup! }
13
+
14
+ describe '.add' do
15
+ let(:alias_name) { :alias_test }
16
+ let(:event_name) { :event_test }
17
+
18
+ subject { described.add(alias_name, event_name) }
19
+
20
+ it { described.must_respond_to(:bind_alias) }
21
+
22
+ context 'when the alias is already registered' do
23
+ before { described.add(:alias_test, :event_test) }
24
+
25
+ it { subject.must_equal([:event_test, :event_test]) }
26
+ end
27
+
28
+ context 'when the alias is not already registered' do
29
+ it { subject.must_equal([:event_test]) }
30
+ end
31
+ end
32
+
33
+ describe '.empty?' do
34
+ subject { described.empty? }
35
+
36
+ context 'when no aliases are registered' do
37
+ before { described.reset }
38
+
39
+ it { subject.must_equal(true) }
40
+ end
41
+
42
+ context 'when aliases are registered' do
43
+ before { described.add(:alias_test, :event_test) }
44
+
45
+ it { subject.must_equal(false) }
46
+ end
47
+ end
48
+
49
+ describe '.find' do
50
+ # @todo Add more tests
51
+ # it { skip }
52
+ end
53
+
54
+ describe '.registered?' do
55
+ let(:alias_name) { :alias_test }
56
+
57
+ subject { described.registered?(alias_name) }
58
+
59
+ context 'when the alias is registered' do
60
+ before { described.add(:alias_test, :event_test) }
61
+
62
+ it { subject.must_equal(true) }
63
+ end
64
+
65
+ context 'when the alias is not registered' do
66
+ it { subject.must_equal(false) }
67
+ end
68
+ end
69
+
70
+ describe '.remove' do
71
+ let(:alias_name) { :alias_test }
72
+
73
+ before { described.reset }
74
+
75
+ subject { described.remove(alias_name) }
76
+
77
+ it { described.must_respond_to(:unbind_alias) }
78
+
79
+ context 'when no aliases are registered' do
80
+ it { subject.must_equal(false) }
81
+ end
82
+
83
+ context 'when the alias is not registered' do
84
+ before { described.add(:other_alias_test, :event_test) }
85
+
86
+ it { subject.must_equal(false) }
87
+ end
88
+
89
+ context 'when the alias is registered' do
90
+ before { described.add(:alias_test, :event_test) }
91
+
92
+ it { subject.must_equal({}) }
93
+ end
94
+ end
95
+
96
+ describe '.reset' do
97
+ subject { described.reset }
98
+
99
+ it { described.must_respond_to(:reset!) }
100
+
101
+ it { subject.must_equal({}) }
102
+ end
103
+
104
+ describe '.storage' do
105
+ before { described.reset }
106
+
107
+ subject { described.storage }
108
+
109
+ it { subject.must_equal({}) }
110
+ end
111
+
112
+ describe '.trigger' do
113
+ let(:alias_name) { :some_alias }
114
+ let(:args) {}
115
+
116
+ subject { described.trigger(alias_name, *args) }
117
+
118
+ context 'when the alias name is registered' do
119
+ before do
120
+ Vedeu::Events::Trigger.stubs(:trigger)
121
+
122
+ described.add(:some_alias, :some_event)
123
+ described.add(:some_alias, :other_event)
124
+ end
125
+
126
+ it {
127
+ Vedeu::Events::Trigger.expects(:trigger).with(:some_event, nil)
128
+ Vedeu::Events::Trigger.expects(:trigger).with(:other_event, nil)
129
+ subject
130
+ }
131
+ end
132
+
133
+ context 'when the alias name is not registered' do
134
+ let(:alias_name) {}
135
+
136
+ it { subject.must_equal([]) }
137
+ end
138
+ end
139
+
140
+ end # Aliases
141
+
142
+ end # Events
143
+
144
+ end # Vedeu