controll 0.2.0 → 0.3.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.
- data/README.md +253 -93
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/controll.gemspec +121 -84
- data/lib/controll/assistant/param_assistant.rb +23 -0
- data/lib/controll/assistant/session_assistant.rb +23 -0
- data/lib/controll/assistant.rb +9 -7
- data/lib/controll/commander.rb +16 -3
- data/lib/controll/enabler/macros.rb +75 -0
- data/lib/controll/enabler/maps.rb +15 -0
- data/lib/controll/enabler/notify.rb +43 -0
- data/lib/controll/enabler/path_handler.rb +49 -0
- data/lib/controll/enabler/path_resolver.rb +47 -0
- data/lib/controll/enabler.rb +49 -0
- data/lib/controll/engine.rb +9 -0
- data/lib/controll/errors.rb +4 -1
- data/lib/controll/event/helper.rb +20 -0
- data/lib/controll/{helper/event_matcher.rb → event/matcher.rb} +3 -3
- data/lib/controll/event.rb +60 -0
- data/lib/controll/events.rb +48 -0
- data/lib/controll/executor/base.rb +3 -7
- data/lib/controll/executor/controlled.rb +36 -0
- data/lib/controll/executor/delegator.rb +6 -0
- data/lib/controll/executor.rb +8 -1
- data/lib/controll/flow/action/base.rb +30 -0
- data/lib/controll/flow/action/fallback.rb +25 -0
- data/lib/controll/flow/action/path_action.rb +24 -0
- data/lib/controll/flow/action.rb +7 -0
- data/lib/controll/flow/action_mapper/base.rb +13 -0
- data/lib/controll/flow/action_mapper/complex.rb +52 -0
- data/lib/controll/flow/action_mapper/simple.rb +54 -0
- data/lib/controll/flow/action_mapper.rb +7 -0
- data/lib/controll/flow/errors.rb +16 -0
- data/lib/controll/flow/event_mapper/path_finder.rb +36 -0
- data/lib/controll/flow/event_mapper/util.rb +43 -0
- data/lib/controll/flow/event_mapper.rb +6 -0
- data/lib/controll/flow/master/executor.rb +57 -0
- data/lib/controll/flow/master/macros.rb +66 -0
- data/lib/controll/flow/master.rb +70 -0
- data/lib/controll/flow.rb +15 -0
- data/lib/controll/focused/enabler.rb +31 -0
- data/lib/controll/helper.rb +0 -94
- data/lib/controll/macros.rb +12 -0
- data/lib/controll/notify/base.rb +22 -43
- data/lib/controll/notify/flash.rb +3 -3
- data/lib/controll/notify/macros.rb +57 -0
- data/lib/controll/notify/message/handler.rb +36 -0
- data/lib/controll/notify/message/resolver.rb +28 -0
- data/lib/controll/notify/message/translator.rb +45 -0
- data/lib/controll/notify/message.rb +25 -0
- data/lib/controll/notify/typed.rb +13 -22
- data/lib/controll/notify.rb +11 -4
- data/lib/controll.rb +8 -2
- data/lib/generators/controll/assistant_generator.rb +27 -0
- data/lib/generators/controll/executor_generator.rb +23 -0
- data/lib/generators/controll/flow_handler_generator.rb +21 -0
- data/lib/generators/controll/notifier_generator.rb +21 -0
- data/lib/generators/controll/setup_generator.rb +37 -0
- data/lib/generators/controll/templates/assistant.tt +10 -0
- data/lib/generators/controll/templates/commander.tt +15 -0
- data/lib/generators/controll/templates/executor.tt +14 -0
- data/lib/generators/controll/templates/flow_handler.tt +26 -0
- data/lib/generators/controll/templates/notifier.tt +31 -0
- data/spec/acceptance/app_test.rb +1 -1
- data/spec/controll/assistant/param_assistant_spec.rb +31 -0
- data/spec/controll/assistant/session_assistant_spec.rb +31 -0
- data/spec/controll/assistant_spec.rb +26 -0
- data/spec/controll/command_spec.rb +4 -4
- data/spec/controll/enabler/macros_spec.rb +76 -0
- data/spec/controll/enabler/maps_spec.rb +31 -0
- data/spec/controll/{helper → enabler}/notify_spec.rb +7 -17
- data/spec/controll/enabler/path_handler_spec.rb +24 -0
- data/spec/controll/enabler/path_resolver_spec.rb +87 -0
- data/spec/controll/enabler_spec.rb +30 -0
- data/spec/controll/event/helper_spec.rb +33 -0
- data/spec/controll/{helper/event_matcher_spec.rb → event/matcher_spec.rb} +4 -3
- data/spec/controll/event_spec.rb +66 -0
- data/spec/controll/events_spec.rb +23 -0
- data/spec/controll/executor/controlled_spec.rb +36 -0
- data/spec/controll/executor/{notificator_spec.rb → delegator_spec.rb} +4 -4
- data/spec/controll/flow/action_mapper/complex_spec.rb +102 -0
- data/spec/controll/flow/action_mapper/fallback_spec.rb +34 -0
- data/spec/controll/{flow_handler/render_spec.rb → flow/action_mapper/simple_spec.rb} +25 -22
- data/spec/controll/{flow_handler/redirect/action_spec.rb → flow/event_mapper/path_finder_spec.rb} +10 -10
- data/spec/controll/{flow_handler/redirect/mapper_spec.rb → flow/event_mapper/util_spec.rb} +9 -9
- data/spec/controll/flow/master/executor_spec.rb +56 -0
- data/spec/{app/app/models/.gitkeep → controll/flow/master/macros_spec.rb} +0 -0
- data/spec/controll/flow/master_spec.rb +157 -0
- data/spec/controll/notify/base_spec.rb +6 -12
- data/spec/controll/notify/message/handler_spec.rb +27 -0
- data/spec/controll/notify/message/resolver_spec.rb +53 -0
- data/spec/controll/notify/message/translator_spec.rb +46 -0
- data/spec/controll/notify/message_spec.rb +4 -0
- data/spec/controll/notify/{message_handler.rb → services_notifier.rb} +3 -5
- data/spec/controll/notify/typed_spec.rb +2 -2
- data/spec/{app → controll_app}/.gitignore +0 -0
- data/spec/{app → controll_app}/Gemfile +0 -0
- data/spec/{app → controll_app}/Gemfile.lock +0 -0
- data/spec/{app → controll_app}/README.rdoc +0 -0
- data/spec/{app → controll_app}/Rakefile +0 -0
- data/spec/controll_app/app/controll/commanders/services_commander.rb +5 -0
- data/spec/controll_app/app/controll/executors/services_executor.rb +4 -0
- data/spec/controll_app/app/controll/flows/create_services.rb +9 -0
- data/spec/controll_app/app/controll/notifiers/services_notifier.rb +9 -0
- data/spec/{app → controll_app}/app/controllers/application_controller.rb +0 -1
- data/spec/controll_app/app/controllers/services_controller.rb +8 -0
- data/spec/{app/lib/assets → controll_app/app/models}/.gitkeep +0 -0
- data/spec/{app → controll_app}/app/models/post.rb +0 -0
- data/spec/{app → controll_app}/app/views/layouts/application.html.erb +0 -0
- data/spec/{app → controll_app}/app/views/posts/_form.html.erb +0 -0
- data/spec/{app → controll_app}/app/views/posts/edit.html.erb +0 -0
- data/spec/{app → controll_app}/app/views/posts/index.html.erb +0 -0
- data/spec/{app → controll_app}/app/views/posts/new.html.erb +0 -0
- data/spec/{app → controll_app}/app/views/posts/show.html.erb +0 -0
- data/spec/{app → controll_app}/config/application.rb +1 -1
- data/spec/{app → controll_app}/config/boot.rb +0 -0
- data/spec/{app → controll_app}/config/environment.rb +0 -0
- data/spec/{app → controll_app}/config/environments/development.rb +0 -0
- data/spec/{app → controll_app}/config/environments/test.rb +0 -0
- data/spec/{app → controll_app}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/{app → controll_app}/config/initializers/inflections.rb +0 -0
- data/spec/{app → controll_app}/config/initializers/mime_types.rb +0 -0
- data/spec/{app → controll_app}/config/initializers/secret_token.rb +0 -0
- data/spec/{app → controll_app}/config/initializers/session_store.rb +0 -0
- data/spec/{app → controll_app}/config/locales/en.yml +0 -0
- data/spec/controll_app/config/routes.rb +5 -0
- data/spec/{app → controll_app}/config.ru +0 -0
- data/spec/{app → controll_app}/db/seeds.rb +0 -0
- data/spec/{app/lib/tasks → controll_app/log}/.gitkeep +0 -0
- data/spec/{app → controll_app}/public/404.html +0 -0
- data/spec/{app → controll_app}/public/422.html +0 -0
- data/spec/{app → controll_app}/public/500.html +0 -0
- data/spec/{app → controll_app}/public/favicon.ico +0 -0
- data/spec/{app → controll_app}/public/index.html +0 -0
- data/spec/{app → controll_app}/public/javascripts/application.js +0 -0
- data/spec/{app → controll_app}/public/robots.txt +0 -0
- data/spec/{app → controll_app}/public/stylesheets/application.css +0 -0
- metadata +122 -85
- data/lib/controll/executor/notificator.rb +0 -12
- data/lib/controll/flow_handler/base.rb +0 -19
- data/lib/controll/flow_handler/control.rb +0 -85
- data/lib/controll/flow_handler/errors.rb +0 -5
- data/lib/controll/flow_handler/event_helper.rb +0 -18
- data/lib/controll/flow_handler/redirect/action.rb +0 -45
- data/lib/controll/flow_handler/redirect/mapper.rb +0 -41
- data/lib/controll/flow_handler/redirect.rb +0 -51
- data/lib/controll/flow_handler/render.rb +0 -51
- data/lib/controll/flow_handler.rb +0 -11
- data/lib/controll/helper/notify.rb +0 -74
- data/lib/controll/helper/path_resolver.rb +0 -45
- data/spec/app/app/controllers/posts_controller.rb +0 -52
- data/spec/app/config/routes.rb +0 -62
- data/spec/app/log/.gitkeep +0 -0
- data/spec/app/script/rails +0 -6
- data/spec/app/spec/controllers/posts_controller_spec.rb +0 -59
- data/spec/app/spec/isolated_spec_helper.rb +0 -6
- data/spec/app/spec/spec_helper.rb +0 -5
- data/spec/app/spec/unit/controllers/posts_controller_isolated_spec.rb +0 -63
- data/spec/app/spec/unit/controllers/posts_controller_spec.rb +0 -59
- data/spec/app/test/functional/.gitkeep +0 -0
- data/spec/app/test/functional/posts_controller_test.rb +0 -67
- data/spec/app/test/isolated_test_helper.rb +0 -7
- data/spec/app/test/test_helper.rb +0 -6
- data/spec/app/test/unit/.gitkeep +0 -0
- data/spec/app/test/unit/controllers/posts_controller_isolated_test.rb +0 -71
- data/spec/app/test/unit/controllers/posts_controller_test.rb +0 -67
- data/spec/app/vendor/assets/javascripts/.gitkeep +0 -0
- data/spec/app/vendor/assets/stylesheets/.gitkeep +0 -0
- data/spec/app/vendor/plugins/.gitkeep +0 -0
- data/spec/controll/asssistant_spec.rb +0 -5
- data/spec/controll/flow_handler/control_spec.rb +0 -159
- data/spec/controll/flow_handler/redirect_spec.rb +0 -93
- data/spec/controll/helper/path_resolver_spec.rb +0 -49
- data/spec/controll/helper_spec.rb +0 -108
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
require 'isolated_spec_helper'
|
|
2
|
-
require APP_ROOT + '/controllers/application_controller'
|
|
3
|
-
require APP_ROOT + '/controllers/posts_controller'
|
|
4
|
-
require APP_ROOT + '/models/post'
|
|
5
|
-
|
|
6
|
-
describe PostsController do
|
|
7
|
-
include FocusedController::RSpecHelper
|
|
8
|
-
stub_url :post, :posts
|
|
9
|
-
|
|
10
|
-
before do
|
|
11
|
-
@post = Post.create(:title => 'Hello', :body => 'Omg')
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
describe PostsController::Index do
|
|
15
|
-
it "should get index" do
|
|
16
|
-
req
|
|
17
|
-
response.should be_success
|
|
18
|
-
subject.posts.should_not be(:nil)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe PostsController::New do
|
|
23
|
-
it "should get new" do
|
|
24
|
-
req
|
|
25
|
-
response.should be_success
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
describe PostsController::Create do
|
|
30
|
-
it "should create post" do
|
|
31
|
-
expect { req :post => @post.attributes }.to change(Post, :count).by(1)
|
|
32
|
-
response.should redirect_to(post_url(subject.post))
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
describe PostsController::Show do
|
|
37
|
-
it "should show post" do
|
|
38
|
-
req :id => @post.id
|
|
39
|
-
response.should be_success
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
describe PostsController::Edit do
|
|
44
|
-
it "should get edit" do
|
|
45
|
-
req :id => @post.id
|
|
46
|
-
response.should be_success
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
describe PostsController::Update do
|
|
51
|
-
it "should update post" do
|
|
52
|
-
req :id => @post.id
|
|
53
|
-
response.should redirect_to(post_url(subject.post))
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
describe PostsController::Destroy do
|
|
58
|
-
it "should destroy post" do
|
|
59
|
-
expect { req :id => @post.id }.to change(Post, :count).by(-1)
|
|
60
|
-
response.should redirect_to(posts_url)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe PostsController do
|
|
4
|
-
include FocusedController::RSpecHelper
|
|
5
|
-
|
|
6
|
-
before do
|
|
7
|
-
@post = Post.create(:title => 'Hello', :body => 'Omg')
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
describe PostsController::Index do
|
|
11
|
-
it "should get index" do
|
|
12
|
-
req
|
|
13
|
-
response.should be_success
|
|
14
|
-
subject.posts.should_not be(:nil)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
describe PostsController::New do
|
|
19
|
-
it "should get new" do
|
|
20
|
-
req
|
|
21
|
-
response.should be_success
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
describe PostsController::Create do
|
|
26
|
-
it "should create post" do
|
|
27
|
-
expect { req :post => @post.attributes }.to change(Post, :count).by(1)
|
|
28
|
-
response.should redirect_to(post_path(subject.post))
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
describe PostsController::Show do
|
|
33
|
-
it "should show post" do
|
|
34
|
-
req :id => @post.id
|
|
35
|
-
response.should be_success
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
describe PostsController::Edit do
|
|
40
|
-
it "should get edit" do
|
|
41
|
-
req :id => @post.id
|
|
42
|
-
response.should be_success
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
describe PostsController::Update do
|
|
47
|
-
it "should update post" do
|
|
48
|
-
req :id => @post.id
|
|
49
|
-
response.should redirect_to(post_path(subject.post))
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
describe PostsController::Destroy do
|
|
54
|
-
it "should destroy post" do
|
|
55
|
-
expect { req :id => @post.id }.to change(Post, :count).by(-1)
|
|
56
|
-
response.should redirect_to(posts_path)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
File without changes
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
module PostsController
|
|
4
|
-
class TestCase < ActionController::TestCase
|
|
5
|
-
include FocusedController::FunctionalTestHelper
|
|
6
|
-
|
|
7
|
-
setup do
|
|
8
|
-
@post = Post.create(:title => 'Hello', :body => 'Omg')
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class IndexTest < TestCase
|
|
13
|
-
test "should get index" do
|
|
14
|
-
get
|
|
15
|
-
assert_response :success
|
|
16
|
-
assert_not_nil @controller.posts
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class NewTest < TestCase
|
|
21
|
-
test "should get new" do
|
|
22
|
-
get
|
|
23
|
-
assert_response :success
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class CreateTest < TestCase
|
|
28
|
-
test "should create post" do
|
|
29
|
-
assert_difference('Post.count') do
|
|
30
|
-
post :post => @post.attributes
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
assert_redirected_to post_path(@controller.post)
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
class ShowTest < TestCase
|
|
38
|
-
test "should show post" do
|
|
39
|
-
get :id => @post.id
|
|
40
|
-
assert_response :success
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
class EditTest < TestCase
|
|
45
|
-
test "should get edit" do
|
|
46
|
-
get :id => @post.id
|
|
47
|
-
assert_response :success
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class UpdateTest < TestCase
|
|
52
|
-
test "should update post" do
|
|
53
|
-
put :id => @post.id, :post => @post.attributes
|
|
54
|
-
assert_redirected_to post_path(@controller.post)
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
class DestroyTest < TestCase
|
|
59
|
-
test "should destroy post" do
|
|
60
|
-
assert_difference('Post.count', -1) do
|
|
61
|
-
delete :id => @post.id
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
assert_redirected_to posts_path
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
data/spec/app/test/unit/.gitkeep
DELETED
|
File without changes
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
require 'isolated_test_helper'
|
|
2
|
-
require APP_ROOT + '/controllers/application_controller'
|
|
3
|
-
require APP_ROOT + '/controllers/posts_controller'
|
|
4
|
-
require APP_ROOT + '/models/post'
|
|
5
|
-
|
|
6
|
-
module PostsController
|
|
7
|
-
class TestCase < ActiveSupport::TestCase
|
|
8
|
-
include FocusedController::TestHelper
|
|
9
|
-
stub_url :post, :posts
|
|
10
|
-
|
|
11
|
-
setup do
|
|
12
|
-
@post = Post.create(:title => 'Hello', :body => 'Omg')
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
class IndexTest < TestCase
|
|
17
|
-
test "should get index" do
|
|
18
|
-
req
|
|
19
|
-
assert_response :success
|
|
20
|
-
assert_not_nil controller.posts
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
class NewTest < TestCase
|
|
25
|
-
test "should get new" do
|
|
26
|
-
req
|
|
27
|
-
assert_response :success
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
class CreateTest < TestCase
|
|
32
|
-
test "should create post" do
|
|
33
|
-
assert_difference('Post.count') do
|
|
34
|
-
req :post => @post.attributes
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
assert_redirected_to post_url(controller.post)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
class ShowTest < TestCase
|
|
42
|
-
test "should show post" do
|
|
43
|
-
req :id => @post.id
|
|
44
|
-
assert_response :success
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
class EditTest < TestCase
|
|
49
|
-
test "should get edit" do
|
|
50
|
-
req :id => @post.id
|
|
51
|
-
assert_response :success
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
class UpdateTest < TestCase
|
|
56
|
-
test "should update post" do
|
|
57
|
-
req :id => @post.id
|
|
58
|
-
assert_redirected_to post_url(controller.post)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class DestroyTest < TestCase
|
|
63
|
-
test "should destroy post" do
|
|
64
|
-
assert_difference('Post.count', -1) do
|
|
65
|
-
req :id => @post.id
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
assert_redirected_to posts_url
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
module PostsController
|
|
4
|
-
class TestCase < ActiveSupport::TestCase
|
|
5
|
-
include FocusedController::TestHelper
|
|
6
|
-
|
|
7
|
-
setup do
|
|
8
|
-
@post = Post.create(:title => 'Hello', :body => 'Omg')
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class IndexTest < TestCase
|
|
13
|
-
test "should get index" do
|
|
14
|
-
req
|
|
15
|
-
assert_response :success
|
|
16
|
-
assert_not_nil controller.posts
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class NewTest < TestCase
|
|
21
|
-
test "should get new" do
|
|
22
|
-
req
|
|
23
|
-
assert_response :success
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class CreateTest < TestCase
|
|
28
|
-
test "should create post" do
|
|
29
|
-
assert_difference('Post.count') do
|
|
30
|
-
req :post => @post.attributes
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
assert_redirected_to post_path(controller.post)
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
class ShowTest < TestCase
|
|
38
|
-
test "should show post" do
|
|
39
|
-
req :id => @post.id
|
|
40
|
-
assert_response :success
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
class EditTest < TestCase
|
|
45
|
-
test "should get edit" do
|
|
46
|
-
req :id => @post.id
|
|
47
|
-
assert_response :success
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class UpdateTest < TestCase
|
|
52
|
-
test "should update post" do
|
|
53
|
-
req :id => @post.id
|
|
54
|
-
assert_redirected_to post_path(controller.post)
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
class DestroyTest < TestCase
|
|
59
|
-
test "should destroy post" do
|
|
60
|
-
assert_difference('Post.count', -1) do
|
|
61
|
-
req :id => @post.id
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
assert_redirected_to posts_path
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
module MyController
|
|
4
|
-
class Update
|
|
5
|
-
def render path
|
|
6
|
-
send(path) if path
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def default
|
|
10
|
-
'default'
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class EmptyEventFlowHandler < Controll::FlowHandler::Control
|
|
16
|
-
def event
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class UpdateEventWithoutHandlerMapping < Controll::FlowHandler::Control
|
|
21
|
-
def event
|
|
22
|
-
:update
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
class UpdateEventFlowHandler < Controll::FlowHandler::Control
|
|
27
|
-
def event
|
|
28
|
-
:update
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
class Render < Controll::FlowHandler::Render
|
|
32
|
-
set_events :update
|
|
33
|
-
set_default_path 'default'
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
class UpdateEventNoMatchFlowHandler < Controll::FlowHandler::Control
|
|
38
|
-
def event
|
|
39
|
-
:update
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
class Render < Controll::FlowHandler::Render
|
|
43
|
-
set_events :create
|
|
44
|
-
set_default_path '/default'
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
describe Controll::FlowHandler::Control do
|
|
51
|
-
context 'use directly without sublclassing' do
|
|
52
|
-
subject { flow_handler.new controller }
|
|
53
|
-
|
|
54
|
-
let(:flow_handler) { Controll::FlowHandler::Control }
|
|
55
|
-
let(:controller) { MyController::Update.new }
|
|
56
|
-
|
|
57
|
-
describe '.initialize' do
|
|
58
|
-
specify do
|
|
59
|
-
subject.controller.should == controller
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
describe '.execute' do
|
|
64
|
-
specify do
|
|
65
|
-
expect { subject.execute }.to_not raise_error
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
context 'A Control FlowHandler with empty #event method' do
|
|
71
|
-
subject { flow_handler.new controller }
|
|
72
|
-
|
|
73
|
-
let(:flow_handler) { EmptyEventFlowHandler }
|
|
74
|
-
let(:controller) { MyController::Update.new }
|
|
75
|
-
|
|
76
|
-
describe '.initialize' do
|
|
77
|
-
specify do
|
|
78
|
-
subject.controller.should == controller
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
describe '.execute' do
|
|
83
|
-
specify do
|
|
84
|
-
expect { subject.execute }.to_not raise_error(NotImplementedError)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# since event returns nil
|
|
88
|
-
specify do
|
|
89
|
-
expect { subject.execute }.to_not raise_error
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
context 'A Control FlowHandler where #event returns :update notice event' do
|
|
95
|
-
subject { flow_handler.new controller }
|
|
96
|
-
|
|
97
|
-
let(:flow_handler) { UpdateEventWithoutHandlerMapping }
|
|
98
|
-
let(:controller) { MyController::Update.new }
|
|
99
|
-
|
|
100
|
-
describe '.initialize' do
|
|
101
|
-
specify do
|
|
102
|
-
subject.controller.should == controller
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
describe '.execute' do
|
|
107
|
-
# since event returns nil
|
|
108
|
-
specify do
|
|
109
|
-
expect { subject.execute }.to_not raise_error
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
context 'A Control FlowHandler where #event returns :update notice event and has a Render class with matching mapping' do
|
|
115
|
-
subject { flow_handler.new controller }
|
|
116
|
-
|
|
117
|
-
let(:flow_handler) { UpdateEventFlowHandler }
|
|
118
|
-
let(:controller) { MyController::Update.new }
|
|
119
|
-
|
|
120
|
-
describe '.initialize' do
|
|
121
|
-
specify do
|
|
122
|
-
subject.controller.should == controller
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
describe '.execute' do
|
|
127
|
-
# since event returns nil
|
|
128
|
-
specify do
|
|
129
|
-
expect { subject.execute }.to_not raise_error(Controll::FlowHandler::Control::ActionEventError)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
specify do
|
|
133
|
-
subject.execute
|
|
134
|
-
subject.executed?.should be_true
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
context 'A Control FlowHandler where #event returns :update notice event and has a Render class with NO matching mapping' do
|
|
140
|
-
subject { flow_handler.new controller }
|
|
141
|
-
|
|
142
|
-
let(:flow_handler) { UpdateEventNoMatchFlowHandler }
|
|
143
|
-
let(:controller) { MyController::Update.new }
|
|
144
|
-
|
|
145
|
-
describe '.initialize' do
|
|
146
|
-
specify do
|
|
147
|
-
subject.controller.should == controller
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
describe '.execute' do
|
|
152
|
-
# since event returns nil
|
|
153
|
-
specify do
|
|
154
|
-
expect { subject.execute }.to_not raise_error
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
class HelloToWelcomeRedirect < Controll::FlowHandler::Redirect
|
|
4
|
-
set_redirections :welcome => [:hello, :hi]
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
class ErrorBadRedirect < Controll::FlowHandler::Redirect
|
|
8
|
-
set_redirections :error, bad: ['bad_payment', 'wrong_payment']
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def notification name
|
|
12
|
-
Hashie::Mash.new(name: name.to_sym, type: :notice)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def error name
|
|
16
|
-
Hashie::Mash.new(name: name.to_sym, type: :error)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
describe Controll::FlowHandler::Redirect do
|
|
20
|
-
|
|
21
|
-
describe 'class macros' do
|
|
22
|
-
before :all do
|
|
23
|
-
ErrorBadRedirect.set_redirections :error, crap: ['bad_payment', 'wrong_payment']
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
specify {
|
|
27
|
-
ErrorBadRedirect.redirections_for(:error).should == {crap: ['bad_payment', 'wrong_payment']}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
specify {
|
|
31
|
-
ErrorBadRedirect.redirections.should == {error: {crap: ['bad_payment', 'wrong_payment']} }
|
|
32
|
-
}
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# context 'use directly without subclassing' do
|
|
36
|
-
# subject { clazz.new '/' }
|
|
37
|
-
|
|
38
|
-
# let(:clazz) { Controll::FlowHandler::Redirect }
|
|
39
|
-
|
|
40
|
-
# let(:hello) { notification :hello }
|
|
41
|
-
|
|
42
|
-
# describe '.action event' do
|
|
43
|
-
# specify do
|
|
44
|
-
# expect { clazz.action(:hello) }.to raise_error(Controll::FlowHandler::Redirect::NoRedirectionFoundError)
|
|
45
|
-
# end
|
|
46
|
-
# end
|
|
47
|
-
# end
|
|
48
|
-
|
|
49
|
-
# context 'HelloToWelcomeRedirect subclass' do
|
|
50
|
-
# subject { clazz.new '/' }
|
|
51
|
-
|
|
52
|
-
# let(:clazz) { HelloToWelcomeRedirect }
|
|
53
|
-
|
|
54
|
-
# context 'has redirections' do
|
|
55
|
-
# describe '.action event' do
|
|
56
|
-
# specify do
|
|
57
|
-
# expect { clazz.action(:hello) }.to_not raise_error(Controll::FlowHandler::Redirect::NoRedirectionFoundError)
|
|
58
|
-
# end
|
|
59
|
-
|
|
60
|
-
# specify do
|
|
61
|
-
# clazz.action(:hello).should be_a HelloToWelcomeRedirect
|
|
62
|
-
# end
|
|
63
|
-
|
|
64
|
-
# specify do
|
|
65
|
-
# clazz.action(:hi).path.should == 'welcome'
|
|
66
|
-
# end
|
|
67
|
-
# end
|
|
68
|
-
# end
|
|
69
|
-
# end
|
|
70
|
-
|
|
71
|
-
context 'ErrorBadRedirect subclass' do
|
|
72
|
-
subject { clazz.new '/' }
|
|
73
|
-
|
|
74
|
-
let(:clazz) { ErrorBadRedirect }
|
|
75
|
-
|
|
76
|
-
context 'has error redirections' do
|
|
77
|
-
describe '.action event' do
|
|
78
|
-
specify do
|
|
79
|
-
expect { clazz.action(:hello) }.to raise_error(Controll::FlowHandler::NoRedirectionFoundError)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
specify do
|
|
83
|
-
clazz.action(error :bad_payment).should be_a ErrorBadRedirect
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
specify do
|
|
87
|
-
clazz.action(error :wrong_payment).path.should == 'crap'
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
class MySweetController
|
|
4
|
-
include Controll::Helper
|
|
5
|
-
|
|
6
|
-
redirect_map :index => %w{success}
|
|
7
|
-
|
|
8
|
-
render_map :show => %w{success}
|
|
9
|
-
|
|
10
|
-
# Mocking!
|
|
11
|
-
def render path
|
|
12
|
-
path
|
|
13
|
-
end
|
|
14
|
-
alias_method :redirect_to, :render
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
describe Controll::Helper::PathResolver do
|
|
18
|
-
subject { Controll::Helper::PathResolver.new controller }
|
|
19
|
-
|
|
20
|
-
let(:controller) { MySweetController.new }
|
|
21
|
-
|
|
22
|
-
describe '.extract_path' do
|
|
23
|
-
describe ':redirect_map' do
|
|
24
|
-
specify do
|
|
25
|
-
subject.extract_path(:redirect_map).should == 'index'
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
describe ':render_paths' do
|
|
30
|
-
specify do
|
|
31
|
-
subject.extract_path(:render_paths).should == 'show'
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
describe '.resolve_path' do
|
|
37
|
-
describe ':redirect_map' do
|
|
38
|
-
specify do
|
|
39
|
-
subject.resolve_path(:redirect_map).should == 'index'
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
describe ':render_paths' do
|
|
44
|
-
specify do
|
|
45
|
-
subject.resolve_path(:render_paths).should == 'show'
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|