MonkeyEngine 1.0.0 → 2.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.
- checksums.yaml +5 -5
- data/.gitignore +19 -16
- data/.rspec +3 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +71 -0
- data/README.md +5 -1
- data/Rakefile +3 -2
- data/dictionaries/en-US.txt +466554 -0
- data/lib/Action/action.rb +5 -4
- data/lib/Monkey/monkey.rb +17 -12
- data/lib/Monkey.rb +3 -1
- data/lib/MonkeyAction/monkey_action.rb +3 -1
- data/lib/MonkeyAction/monkey_action_dead.rb +8 -6
- data/lib/MonkeyAction/monkey_action_eat.rb +6 -4
- data/lib/MonkeyAction/monkey_action_pause.rb +6 -5
- data/lib/MonkeyAction/monkey_action_sleep.rb +6 -4
- data/lib/MonkeyAction/monkey_action_type.rb +15 -10
- data/lib/MonkeyAction/monkey_action_wake.rb +8 -6
- data/lib/MonkeyAction/monkey_timed_action.rb +6 -4
- data/lib/MonkeyActions.rb +2 -0
- data/lib/MonkeyEngine/action_rules.rb +20 -18
- data/lib/MonkeyEngine/exceptions.rb +7 -7
- data/lib/MonkeyEngine/monkey_engine.rb +13 -10
- data/lib/MonkeyEngine/version.rb +3 -1
- data/lib/MonkeyEngine.rb +3 -1
- data/lib/MonkeyFactory/monkey_factory.rb +3 -4
- data/lib/MonkeyFactory.rb +3 -1
- data/lib/MonkeyKeyboard/keyboard_char.rb +3 -2
- data/lib/MonkeyKeyboard/keyboard_input.rb +4 -3
- data/lib/MonkeyKeyboard/keyboard_key.rb +3 -1
- data/lib/MonkeyKeyboard/keyboard_key_evaluator.rb +5 -7
- data/lib/MonkeyKeyboard/monkey_keyboard_en_us.rb +100 -80
- data/lib/MonkeyKeyboardEnUs.rb +3 -1
- data/lib/MonkeyManager/monkey_manager.rb +13 -11
- data/lib/MonkeyManager.rb +3 -1
- data/lib/MonkeyService/monkey_service.rb +8 -9
- data/lib/MonkeyService.rb +3 -1
- data/lib/tasks/engine.rb +64 -47
- data/monkeyengine.gemspec +22 -20
- data/spec/action_rules_spec.rb +9 -9
- data/spec/engine_spec.rb +5 -10
- data/spec/keyboard_char_spec.rb +3 -4
- data/spec/keyboard_key_spec.rb +3 -4
- data/spec/monkey_action_eat_spec.rb +14 -15
- data/spec/monkey_action_pause_spec.rb +15 -16
- data/spec/monkey_action_sleep_spec.rb +15 -16
- data/spec/monkey_action_type_spec.rb +22 -21
- data/spec/monkey_action_wake_spec.rb +6 -7
- data/spec/monkey_factory_spec.rb +5 -5
- data/spec/monkey_keyboard_en_us_spec.rb +8 -14
- data/spec/monkey_manager_spec.rb +2 -1
- data/spec/monkey_service_spec.rb +15 -18
- data/spec/monkey_spec.rb +2 -1
- data/spec/{spec_helpers.rb → spec_helper.rb} +6 -4
- data/spec/support/shared_examples.rb +12 -12
- metadata +72 -56
- data/.idea/.name +0 -1
- data/.idea/.rakeTasks +0 -7
- data/.idea/MonkeyEngine.iml +0 -133
- data/.idea/codeStyleSettings.xml +0 -13
- data/.idea/encodings.xml +0 -5
- data/.idea/misc.xml +0 -5
- data/.idea/modules.xml +0 -9
- data/.idea/runConfigurations/All_specs_in_test__MonkeyEngine.xml +0 -38
- data/.idea/runConfigurations/IRB_console.xml +0 -25
- data/.idea/runConfigurations/Start_Yard_Server.xml +0 -26
- data/.idea/runConfigurations/monkey_run.xml +0 -26
- data/.idea/scopes/scope_settings.xml +0 -5
- data/.idea/vcs.xml +0 -7
- data/.idea/workspace.xml +0 -886
data/spec/action_rules_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'Monkey'
|
4
4
|
require 'MonkeyFactory'
|
@@ -8,7 +8,6 @@ require 'MonkeyActions'
|
|
8
8
|
require_relative '../lib/MonkeyKeyboard/keyboard_input'
|
9
9
|
|
10
10
|
describe 'ActionRules' do
|
11
|
-
|
12
11
|
before(:each) do
|
13
12
|
end
|
14
13
|
|
@@ -16,25 +15,26 @@ describe 'ActionRules' do
|
|
16
15
|
end
|
17
16
|
|
18
17
|
context 'get_next_action' do
|
19
|
-
|
20
18
|
it 'should throw an exception if the action is not completed' do
|
21
|
-
monkey = MonkeyFactory
|
19
|
+
monkey = MonkeyFactory.create :groucho
|
22
20
|
|
23
21
|
monkey.extend(SpecHelpers::SetMonkeyAction)
|
24
22
|
|
25
23
|
keyboard_input = KeyboardInput.new
|
26
|
-
keyboard_input.input = %w
|
24
|
+
keyboard_input.input = %w[H e l l o]
|
27
25
|
|
28
26
|
action = MonkeyActionType.new(monkey, keyboard_input)
|
29
27
|
action.action_completed = false
|
30
28
|
|
31
29
|
monkey.set_action(action)
|
32
30
|
|
33
|
-
lambda {
|
31
|
+
lambda {
|
32
|
+
ActionRules.instance.get_next_action monkey
|
33
|
+
}.should raise_error MonkeyEngine::Exceptions::InvalidOperationException
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should get correct action if current action is nil?' do
|
37
|
-
monkey = MonkeyFactory
|
37
|
+
monkey = MonkeyFactory.create :groucho
|
38
38
|
|
39
39
|
monkey.extend(SpecHelpers::SetMonkeyAction)
|
40
40
|
|
@@ -44,7 +44,7 @@ describe 'ActionRules' do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should get correct action if current action is MonkeyActionSleep' do
|
47
|
-
monkey = MonkeyFactory
|
47
|
+
monkey = MonkeyFactory.create :groucho
|
48
48
|
|
49
49
|
monkey.extend(SpecHelpers::SetMonkeyAction)
|
50
50
|
|
@@ -56,4 +56,4 @@ describe 'ActionRules' do
|
|
56
56
|
ActionRules.instance.get_next_action(monkey).is_a?(MonkeyActionWake).should == true
|
57
57
|
end
|
58
58
|
end
|
59
|
-
end
|
59
|
+
end
|
data/spec/engine_spec.rb
CHANGED
@@ -1,21 +1,18 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'MonkeyEngine'
|
4
4
|
require 'MonkeyActions'
|
5
5
|
require 'MonkeyFactory'
|
6
6
|
|
7
|
-
|
8
7
|
describe 'Engine' do
|
9
|
-
|
10
8
|
before(:each) do
|
11
9
|
@engine = MonkeyEngine::Engine.instance
|
12
|
-
@monkey = MonkeyFactory
|
10
|
+
@monkey = MonkeyFactory.create :groucho
|
13
11
|
@monkey.extend(SpecHelpers::SetMonkeyAction)
|
14
12
|
end
|
15
13
|
|
16
14
|
context 'action_eval!' do
|
17
15
|
it 'should return action completed if the action is completed' do
|
18
|
-
|
19
16
|
action = MonkeyActionPause.new(@monkey, 10)
|
20
17
|
action.action_completed = false
|
21
18
|
action.action_time_of_completion = action.action_time
|
@@ -26,7 +23,6 @@ describe 'Engine' do
|
|
26
23
|
end
|
27
24
|
|
28
25
|
it 'should return action not completed if the action is not completed' do
|
29
|
-
|
30
26
|
action = MonkeyActionPause.new(@monkey, 60)
|
31
27
|
action.action_completed = false
|
32
28
|
|
@@ -38,13 +34,12 @@ describe 'Engine' do
|
|
38
34
|
|
39
35
|
context 'action_new' do
|
40
36
|
it 'should return a new action if a the current action is completed' do
|
41
|
-
|
42
|
-
action = MonkeyActionSleep.new(@monkey, 60*8)
|
37
|
+
action = MonkeyActionSleep.new(@monkey, 60 * 8)
|
43
38
|
action.action_completed = true
|
44
39
|
|
45
40
|
@monkey.set_action(action)
|
46
41
|
|
47
|
-
@engine.new_action(@monkey).is_a?(MonkeyActionSleep).should_not==true
|
42
|
+
@engine.new_action(@monkey).is_a?(MonkeyActionSleep).should_not == true
|
48
43
|
end
|
49
44
|
end
|
50
45
|
|
@@ -53,4 +48,4 @@ describe 'Engine' do
|
|
53
48
|
skip 'todo'
|
54
49
|
end
|
55
50
|
end
|
56
|
-
end
|
51
|
+
end
|
data/spec/keyboard_char_spec.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'MonkeyKeyboardEnUs'
|
2
4
|
|
3
5
|
describe 'KeyboardChar' do
|
4
|
-
|
5
6
|
it 'should return the proper char that it represents' do
|
6
|
-
|
7
7
|
keyboard_char = KeyboardChar.new 'a'
|
8
8
|
|
9
9
|
keyboard_char.char.should == 'a'
|
10
|
-
|
11
10
|
end
|
12
|
-
end
|
11
|
+
end
|
data/spec/keyboard_key_spec.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'MonkeyKeyboardEnUs'
|
2
4
|
|
3
5
|
describe 'KeyboardKey' do
|
4
|
-
|
5
6
|
it 'should should return correct properties' do
|
6
|
-
|
7
7
|
keyboard_key = KeyboardKey.new 'a', 'A', :left, 1
|
8
8
|
|
9
9
|
keyboard_key.keyboard_char.should == 'a'
|
10
10
|
keyboard_key.keyboard_shift_char.should == 'A'
|
11
11
|
keyboard_key.keyboard_key_section.should == :left
|
12
12
|
keyboard_key.keyboard_key_weight.should == 1
|
13
|
-
|
14
13
|
end
|
15
|
-
end
|
14
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'Monkey'
|
2
4
|
require 'MonkeyActions'
|
3
5
|
require 'MonkeyFactory'
|
@@ -7,12 +9,10 @@ require_relative 'support/shared_examples'
|
|
7
9
|
|
8
10
|
describe 'MonkeyActionEat' do
|
9
11
|
before(:all) do
|
10
|
-
|
11
12
|
@monkey = MonkeyFactory.create :eating_monkey1
|
12
13
|
@it = MonkeyActionEat.new @monkey, 30 # minutes
|
13
14
|
|
14
15
|
MonkeyEngine::MonkeyManager.instance.add(@monkey)
|
15
|
-
|
16
16
|
end
|
17
17
|
|
18
18
|
after(:all) do
|
@@ -39,7 +39,7 @@ describe 'MonkeyActionEat' do
|
|
39
39
|
@it.value.should == 30
|
40
40
|
end
|
41
41
|
|
42
|
-
it
|
42
|
+
it '@value should be is_a? Integer' do
|
43
43
|
@it.value.is_a?(Integer).should == true
|
44
44
|
end
|
45
45
|
|
@@ -49,38 +49,37 @@ describe 'MonkeyActionEat' do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# validate
|
52
|
-
it
|
52
|
+
it 'should not raise an error if value is within acceptable range' do
|
53
53
|
monkey = MonkeyFactory.create(:eating_monkey2)
|
54
54
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
55
|
-
|
55
|
+
-> { MonkeyActionEat.new(monkey, 40) }.should_not raise_error
|
56
56
|
end
|
57
57
|
|
58
|
-
it
|
58
|
+
it 'should raise an error if value is the wrong type' do
|
59
59
|
monkey = MonkeyFactory.create(:eating_monkey3)
|
60
60
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
61
|
-
|
61
|
+
-> { MonkeyActionEat.new(monkey, :wrong_type) }.should \
|
62
62
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentTypeException
|
63
63
|
end
|
64
64
|
|
65
|
-
it
|
65
|
+
it 'should raise an error if value is less than min acceptable range' do
|
66
66
|
monkey = MonkeyFactory.create(:eating_monkey4)
|
67
67
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
68
|
-
|
68
|
+
-> { MonkeyActionEat.new(monkey, 29) }.should \
|
69
69
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
70
70
|
end
|
71
71
|
|
72
|
-
it
|
72
|
+
it 'should raise an error if value is greater than max acceptable range' do
|
73
73
|
monkey = MonkeyFactory.create(:eating_monkey5)
|
74
74
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
75
|
-
|
75
|
+
-> { MonkeyActionEat.new(monkey, 61) }.should \
|
76
76
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
77
77
|
end
|
78
78
|
|
79
|
-
it
|
79
|
+
it 'should raise an error if value is nil' do
|
80
80
|
monkey = MonkeyFactory.create(:eating_monkey6)
|
81
81
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
82
|
-
|
82
|
+
-> { MonkeyActionEat.new(monkey, nil) }.should \
|
83
83
|
raise_error MonkeyEngine::Exceptions::NilArgumentException
|
84
84
|
end
|
85
|
-
|
86
|
-
end
|
85
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'Monkey'
|
2
4
|
require 'MonkeyActions'
|
3
5
|
require 'MonkeyFactory'
|
@@ -8,12 +10,10 @@ require_relative 'support/shared_examples'
|
|
8
10
|
|
9
11
|
describe 'MonkeyActionPause' do
|
10
12
|
before(:all) do
|
11
|
-
|
12
13
|
@monkey = MonkeyFactory.create :pausing_monkey1
|
13
14
|
@it = MonkeyActionPause.new @monkey, 1 # 1 second
|
14
15
|
|
15
16
|
MonkeyEngine::MonkeyManager.instance.add(@monkey)
|
16
|
-
|
17
17
|
end
|
18
18
|
|
19
19
|
after(:all) do
|
@@ -40,11 +40,11 @@ describe 'MonkeyActionPause' do
|
|
40
40
|
@it.value.should == 1
|
41
41
|
end
|
42
42
|
|
43
|
-
it
|
43
|
+
it '@value should be is_a? Integer' do
|
44
44
|
@it.value.is_a?(Integer).should == true
|
45
45
|
end
|
46
46
|
|
47
|
-
it
|
47
|
+
it '@value should >= 1' do
|
48
48
|
(@it.value >= 1).should == true
|
49
49
|
end
|
50
50
|
|
@@ -54,38 +54,37 @@ describe 'MonkeyActionPause' do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
# validate
|
57
|
-
it
|
57
|
+
it 'should not raise an error if value is within acceptable range' do
|
58
58
|
monkey = MonkeyFactory.create(:pausing_monkey2)
|
59
59
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
60
|
-
|
60
|
+
-> { MonkeyActionPause.new(monkey, 5) }.should_not raise_error
|
61
61
|
end
|
62
62
|
|
63
|
-
it
|
63
|
+
it 'should raise an error if value is the wrong type' do
|
64
64
|
monkey = MonkeyFactory.create(:pausing_monkey3)
|
65
65
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
66
|
-
|
66
|
+
-> { MonkeyActionPause.new(monkey, :wrong_type) }.should \
|
67
67
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentTypeException
|
68
68
|
end
|
69
69
|
|
70
|
-
it
|
70
|
+
it 'should raise an error if value is less than min acceptable range' do
|
71
71
|
monkey = MonkeyFactory.create(:pausing_monkey4)
|
72
72
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
73
|
-
|
73
|
+
-> { MonkeyActionPause.new(monkey, -1) }.should \
|
74
74
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
75
75
|
end
|
76
76
|
|
77
|
-
it
|
77
|
+
it 'should raise an error if value is greater than max acceptable range' do
|
78
78
|
monkey = MonkeyFactory.create(:pausing_monkey5)
|
79
79
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
80
|
-
|
80
|
+
-> { MonkeyActionPause.new(monkey, 61) }.should \
|
81
81
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
82
82
|
end
|
83
83
|
|
84
|
-
it
|
84
|
+
it 'should raise an error if value is nil' do
|
85
85
|
monkey = MonkeyFactory.create(:pausing_monkey6)
|
86
86
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
87
|
-
|
87
|
+
-> { MonkeyActionPause.new(monkey, nil) }.should \
|
88
88
|
raise_error MonkeyEngine::Exceptions::NilArgumentException
|
89
89
|
end
|
90
|
-
|
91
|
-
end
|
90
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'Monkey'
|
2
4
|
require 'MonkeyActions'
|
3
5
|
require 'MonkeyFactory'
|
@@ -7,12 +9,10 @@ require_relative 'support/shared_examples'
|
|
7
9
|
|
8
10
|
describe 'MonkeyActionSleep' do
|
9
11
|
before(:all) do
|
10
|
-
|
11
12
|
@monkey = MonkeyFactory.create :sleeping_monkey1
|
12
13
|
@it = MonkeyActionSleep.new @monkey, 60 * 8 # milliseconds
|
13
14
|
|
14
15
|
MonkeyEngine::MonkeyManager.instance.add(@monkey)
|
15
|
-
|
16
16
|
end
|
17
17
|
|
18
18
|
after(:all) do
|
@@ -39,11 +39,11 @@ describe 'MonkeyActionSleep' do
|
|
39
39
|
@it.value.should == 60 * 8
|
40
40
|
end
|
41
41
|
|
42
|
-
it
|
42
|
+
it '@value should be is_a? Integer' do
|
43
43
|
@it.value.is_a?(Integer).should == true
|
44
44
|
end
|
45
45
|
|
46
|
-
it
|
46
|
+
it '@value should equal 60 * 8' do
|
47
47
|
(@it.value == 60 * 8).should == true
|
48
48
|
end
|
49
49
|
|
@@ -53,38 +53,37 @@ describe 'MonkeyActionSleep' do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# validate
|
56
|
-
it
|
56
|
+
it 'should not raise an error if value is within acceptable range' do
|
57
57
|
monkey = MonkeyFactory.create(:sleeping_monkey2)
|
58
58
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
59
|
-
|
59
|
+
-> { MonkeyActionSleep.new(monkey, 60 * 8) }.should_not raise_error
|
60
60
|
end
|
61
61
|
|
62
|
-
it
|
62
|
+
it 'should raise an error if value is the wrong type' do
|
63
63
|
monkey = MonkeyFactory.create(:sleeping_monkey3)
|
64
64
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
65
|
-
|
65
|
+
-> { MonkeyActionSleep.new(monkey, :wrong_type) }.should \
|
66
66
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentTypeException
|
67
67
|
end
|
68
68
|
|
69
|
-
it
|
69
|
+
it 'should raise an error if value is less than min acceptable range' do
|
70
70
|
monkey = MonkeyFactory.create(:sleeping_monkey4)
|
71
71
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
72
|
-
|
72
|
+
-> { MonkeyActionSleep.new(monkey, 60 * 5) }.should \
|
73
73
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
74
74
|
end
|
75
75
|
|
76
|
-
it
|
76
|
+
it 'should raise an error if value is greater than max acceptable range' do
|
77
77
|
monkey = MonkeyFactory.create(:sleeping_monkey5)
|
78
78
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
79
|
-
|
79
|
+
-> { MonkeyActionSleep.new(monkey, 60 * 9) }.should \
|
80
80
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
81
81
|
end
|
82
82
|
|
83
|
-
it
|
83
|
+
it 'should raise an error if value is nil' do
|
84
84
|
monkey = MonkeyFactory.create(:sleeping_monkey6)
|
85
85
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
86
|
-
|
86
|
+
-> { MonkeyActionSleep.new(monkey, nil) }.should \
|
87
87
|
raise_error MonkeyEngine::Exceptions::NilArgumentException
|
88
88
|
end
|
89
|
-
|
90
|
-
end
|
89
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'Monkey'
|
2
4
|
require 'MonkeyActions'
|
3
5
|
require 'MonkeyFactory'
|
@@ -8,11 +10,10 @@ require_relative 'support/shared_examples'
|
|
8
10
|
|
9
11
|
describe 'MonkeyActionType' do
|
10
12
|
before(:all) do
|
11
|
-
|
12
|
-
@monkey = MonkeyFactory::create :typing_monkey1
|
13
|
+
@monkey = MonkeyFactory.create :typing_monkey1
|
13
14
|
|
14
15
|
keyboard_input = KeyboardInput.new
|
15
|
-
keyboard_input.input = %w
|
16
|
+
keyboard_input.input = %w[a b c d e f .]
|
16
17
|
|
17
18
|
@it = MonkeyActionType.new @monkey, keyboard_input
|
18
19
|
|
@@ -40,14 +41,14 @@ describe 'MonkeyActionType' do
|
|
40
41
|
|
41
42
|
# Value
|
42
43
|
it '@value should return the right value' do
|
43
|
-
@it.value.should == %w
|
44
|
+
@it.value.should == %w[a b c d e f .]
|
44
45
|
end
|
45
46
|
|
46
|
-
it
|
47
|
+
it '@value should be is_a? Array' do
|
47
48
|
@it.value.is_a?(Array).should == true
|
48
49
|
end
|
49
50
|
|
50
|
-
it
|
51
|
+
it '@value should not be nil?' do
|
51
52
|
@it.value.nil?.should_not == true
|
52
53
|
end
|
53
54
|
|
@@ -57,38 +58,38 @@ describe 'MonkeyActionType' do
|
|
57
58
|
end
|
58
59
|
|
59
60
|
# validate
|
60
|
-
it
|
61
|
-
monkey = MonkeyFactory
|
61
|
+
it 'should not raise an error if value is valid' do
|
62
|
+
monkey = MonkeyFactory.create(:typing_monkey2)
|
62
63
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
63
64
|
|
64
65
|
keyboard_input = KeyboardInput.new
|
65
|
-
keyboard_input.input = %w
|
66
|
+
keyboard_input.input = %w[w o r d .]
|
66
67
|
|
67
|
-
|
68
|
+
-> { MonkeyActionType.new(monkey, keyboard_input) }.should_not raise_error
|
68
69
|
end
|
69
70
|
|
70
|
-
it
|
71
|
-
monkey = MonkeyFactory
|
71
|
+
it 'should raise an error if value is the wrong type' do
|
72
|
+
monkey = MonkeyFactory.create(:typing_monkey3)
|
72
73
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
73
|
-
|
74
|
+
-> { MonkeyActionType.new(monkey, :wrong_type) }.should \
|
74
75
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentTypeException
|
75
76
|
end
|
76
77
|
|
77
|
-
it
|
78
|
-
monkey = MonkeyFactory
|
78
|
+
it 'should raise an error if value is empty?' do
|
79
|
+
monkey = MonkeyFactory.create(:typing_monkey4)
|
79
80
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
80
81
|
|
81
82
|
keyboard_input = KeyboardInput.new
|
82
|
-
keyboard_input.input = %w
|
83
|
+
keyboard_input.input = %w[]
|
83
84
|
|
84
|
-
|
85
|
+
-> { MonkeyActionType.new(monkey, keyboard_input) }.should \
|
85
86
|
raise_error MonkeyEngine::Exceptions::InvalidArgumentValueException
|
86
87
|
end
|
87
88
|
|
88
|
-
it
|
89
|
-
monkey = MonkeyFactory
|
89
|
+
it 'should raise an error if value is nil' do
|
90
|
+
monkey = MonkeyFactory.create(:typing_monkey5)
|
90
91
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
91
|
-
|
92
|
+
-> { MonkeyActionType.new(monkey, nil) }.should \
|
92
93
|
raise_error MonkeyEngine::Exceptions::NilArgumentException
|
93
94
|
end
|
94
|
-
end
|
95
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'Monkey'
|
2
4
|
require 'MonkeyActions'
|
3
5
|
require 'MonkeyFactory'
|
@@ -7,12 +9,10 @@ require_relative 'support/shared_examples'
|
|
7
9
|
|
8
10
|
describe 'MonkeyActionWake' do
|
9
11
|
before(:all) do
|
10
|
-
|
11
12
|
@monkey = MonkeyFactory.create :waking_monkey1
|
12
13
|
@it = MonkeyActionWake.new @monkey
|
13
14
|
|
14
15
|
MonkeyEngine::MonkeyManager.instance.add(@monkey)
|
15
|
-
|
16
16
|
end
|
17
17
|
|
18
18
|
after(:all) do
|
@@ -39,7 +39,7 @@ describe 'MonkeyActionWake' do
|
|
39
39
|
@it.value.should == true
|
40
40
|
end
|
41
41
|
|
42
|
-
it
|
42
|
+
it '@value should be is_a? TrueClass' do
|
43
43
|
@it.value.is_a?(TrueClass).should == true
|
44
44
|
end
|
45
45
|
|
@@ -49,10 +49,9 @@ describe 'MonkeyActionWake' do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# validate
|
52
|
-
it
|
52
|
+
it 'should not raise an error if value is within acceptable range' do
|
53
53
|
monkey = MonkeyFactory.create(:waking_monkey2)
|
54
54
|
MonkeyEngine::MonkeyManager.instance.add(monkey)
|
55
|
-
|
55
|
+
-> { MonkeyActionWake.new(monkey) }.should_not raise_error
|
56
56
|
end
|
57
|
-
|
58
|
-
end
|
57
|
+
end
|
data/spec/monkey_factory_spec.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'MonkeyFactory'
|
2
4
|
|
3
5
|
describe 'MonkeyFactory' do
|
4
|
-
|
5
6
|
before(:all) do
|
6
7
|
end
|
7
8
|
|
@@ -9,15 +10,14 @@ describe 'MonkeyFactory' do
|
|
9
10
|
end
|
10
11
|
|
11
12
|
context 'create' do
|
12
|
-
|
13
13
|
it 'should instantiate an object from the factory' do
|
14
|
-
monkey = MonkeyFactory
|
14
|
+
monkey = MonkeyFactory.create(:harpo)
|
15
15
|
monkey.nil?.should == false
|
16
16
|
monkey.is_a?(Monkey).should == true
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should not instantiate an object without using the factory' do
|
20
|
-
|
20
|
+
-> { Monkey.new :groucho }.should raise_error NoMethodError
|
21
21
|
end
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'MonkeyKeyboardEnUs'
|
2
4
|
|
3
5
|
describe 'MonkeyKeyboardEnUs' do
|
4
|
-
|
5
|
-
before (:all) do
|
6
|
+
before(:all) do
|
6
7
|
@it = MonkeyEngine::MonkeyKeyboardEnUs.instance
|
7
8
|
end
|
8
9
|
|
@@ -10,33 +11,26 @@ describe 'MonkeyKeyboardEnUs' do
|
|
10
11
|
end
|
11
12
|
|
12
13
|
context 'left_keys' do
|
13
|
-
|
14
14
|
it 'should have the correct amount of keyboard entries on the left side of the keyboard' do
|
15
|
-
|
16
15
|
key_count = 0
|
17
16
|
|
18
|
-
@it.keys.each
|
17
|
+
@it.keys.each do |key|
|
19
18
|
key_count += key.keyboard_key_weight if key.keyboard_key_section == :left
|
20
|
-
|
19
|
+
end
|
21
20
|
|
22
21
|
@it.left_keys.count.should == key_count
|
23
22
|
end
|
24
|
-
|
25
23
|
end
|
26
24
|
|
27
25
|
context 'right_keys' do
|
28
|
-
|
29
26
|
it 'should have the correct amount of keyboard entries on the right side of the keyboard' do
|
30
|
-
|
31
27
|
key_count = 0
|
32
28
|
|
33
|
-
@it.keys.each
|
29
|
+
@it.keys.each do |key|
|
34
30
|
key_count += key.keyboard_key_weight if key.keyboard_key_section == :right
|
35
|
-
|
31
|
+
end
|
36
32
|
|
37
33
|
@it.right_keys.count.should == key_count
|
38
34
|
end
|
39
|
-
|
40
35
|
end
|
41
|
-
|
42
|
-
end
|
36
|
+
end
|