troo 0.0.7 → 0.0.8
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 +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -0
- data/Guardfile +3 -1
- data/Rakefile +7 -0
- data/bin/troo +3 -8
- data/config/.gitkeep +0 -0
- data/config/cucumber.yml +8 -0
- data/features/add/board.feature +26 -0
- data/features/add/card.feature +34 -0
- data/features/add/comment.feature +21 -0
- data/features/add/list.feature +24 -0
- data/features/cleanup.feature +13 -0
- data/features/default/board.feature +21 -0
- data/features/default/card.feature +21 -0
- data/features/default/list.feature +21 -0
- data/features/refresh/all.feature +7 -0
- data/features/refresh/board.feature +26 -0
- data/features/refresh/card.feature +27 -0
- data/features/refresh/list.feature +27 -0
- data/features/show/board.feature +32 -0
- data/features/show/card.feature +62 -0
- data/features/show/comment.feature +39 -0
- data/features/show/list.feature +37 -0
- data/features/status.feature +46 -1
- data/features/step_definitions/fabrication_steps.rb +34 -0
- data/features/step_definitions/troo_steps.rb +16 -0
- data/features/support/env.rb +22 -24
- data/features/troo.feature +31 -1
- data/lib/troo/actions/create_board.rb +10 -7
- data/lib/troo/actions/create_card.rb +5 -4
- data/lib/troo/actions/create_comment.rb +15 -13
- data/lib/troo/actions/create_list.rb +5 -4
- data/lib/troo/actions/move_card.rb +4 -3
- data/lib/troo/{external/board_adaptor.rb → adaptors/board.rb} +3 -14
- data/lib/troo/{external/card_adaptor.rb → adaptors/card.rb} +4 -15
- data/lib/troo/{external/comment_adaptor.rb → adaptors/comment.rb} +6 -17
- data/lib/troo/{external/list_adaptor.rb → adaptors/list.rb} +3 -14
- data/lib/troo/{external/member_adaptor.rb → adaptors/member.rb} +3 -14
- data/lib/troo/adaptors/resource.rb +17 -0
- data/lib/troo/cli/add.rb +53 -0
- data/lib/troo/cli/default.rb +25 -0
- data/lib/troo/cli/main.rb +46 -0
- data/lib/troo/cli/refresh.rb +31 -0
- data/lib/troo/cli/show.rb +41 -0
- data/lib/troo/cli/thor_fixes.rb +13 -0
- data/lib/troo/commands/add/board.rb +26 -0
- data/lib/troo/commands/add/card.rb +33 -0
- data/lib/troo/commands/add/comment.rb +33 -0
- data/lib/troo/commands/add/list.rb +33 -0
- data/lib/troo/commands/add/resource.rb +21 -0
- data/lib/troo/commands/commands.rb +28 -0
- data/lib/troo/commands/default/board.rb +25 -0
- data/lib/troo/commands/default/card.rb +25 -0
- data/lib/troo/commands/default/list.rb +25 -0
- data/lib/troo/commands/default/resource.rb +26 -0
- data/lib/troo/commands/refresh/all.rb +41 -0
- data/lib/troo/commands/refresh/board.rb +28 -0
- data/lib/troo/commands/refresh/card.rb +29 -0
- data/lib/troo/commands/refresh/list.rb +29 -0
- data/lib/troo/commands/refresh/resource.rb +42 -0
- data/lib/troo/commands/show/board.rb +13 -0
- data/lib/troo/commands/show/boards.rb +35 -0
- data/lib/troo/commands/show/card.rb +13 -0
- data/lib/troo/commands/show/comments.rb +21 -0
- data/lib/troo/commands/show/list.rb +13 -0
- data/lib/troo/commands/show/resource.rb +41 -0
- data/lib/troo/commands/status/board.rb +30 -0
- data/lib/troo/commands/status/card.rb +30 -0
- data/lib/troo/commands/status/list.rb +30 -0
- data/lib/troo/commands/status/resource.rb +34 -0
- data/lib/troo/decorators/board.rb +66 -0
- data/lib/troo/decorators/card.rb +105 -0
- data/lib/troo/decorators/comment.rb +36 -0
- data/lib/troo/decorators/list.rb +60 -0
- data/lib/troo/decorators/member.rb +28 -0
- data/lib/troo/external/board.rb +14 -26
- data/lib/troo/external/card.rb +2 -19
- data/lib/troo/external/comment.rb +5 -23
- data/lib/troo/external/list.rb +2 -20
- data/lib/troo/external/member.rb +2 -20
- data/lib/troo/external/resource.rb +21 -6
- data/lib/troo/helpers/command_helpers.rb +37 -0
- data/lib/troo/{display → helpers}/decorator_helpers.rb +23 -17
- data/lib/troo/{models → helpers}/model_helpers.rb +1 -1
- data/lib/troo/models/behaviours/set_default.rb +49 -0
- data/lib/troo/models/board.rb +10 -7
- data/lib/troo/models/card.rb +33 -15
- data/lib/troo/models/comment.rb +8 -5
- data/lib/troo/models/list.rb +10 -6
- data/lib/troo/models/member.rb +7 -4
- data/lib/troo/models/persistence/board.rb +19 -0
- data/lib/troo/models/persistence/card.rb +19 -0
- data/lib/troo/models/persistence/comment.rb +19 -0
- data/lib/troo/models/persistence/list.rb +19 -0
- data/lib/troo/models/persistence/member.rb +19 -0
- data/lib/troo/models/persistence/resource.rb +50 -0
- data/lib/troo/models/refresh.rb +1 -1
- data/lib/troo/models/remote/comment.rb +21 -0
- data/lib/troo/models/remote/resource.rb +25 -0
- data/lib/troo/models/retrieval/board.rb +29 -0
- data/lib/troo/models/retrieval/card.rb +33 -0
- data/lib/troo/models/retrieval/comment.rb +25 -0
- data/lib/troo/models/retrieval/list.rb +29 -0
- data/lib/troo/models/retrieval/member.rb +25 -0
- data/lib/troo/models/retrieval/resource.rb +36 -0
- data/lib/troo/presentation/sentence.rb +57 -0
- data/lib/troo/presentation/template.rb +4 -3
- data/lib/troo/presenters/board.rb +81 -0
- data/lib/troo/presenters/card.rb +30 -0
- data/lib/troo/presenters/comment.rb +38 -0
- data/lib/troo/presenters/list.rb +44 -0
- data/lib/troo/presenters/member.rb +32 -0
- data/lib/troo/troo.rb +79 -65
- data/lib/troo/version.rb +1 -2
- data/lib/troo.rb +36 -8
- data/test/lib/troo/actions/create_board_test.rb +34 -15
- data/test/lib/troo/actions/create_card_test.rb +35 -18
- data/test/lib/troo/actions/create_comment_test.rb +38 -16
- data/test/lib/troo/actions/create_list_test.rb +31 -15
- data/test/lib/troo/actions/move_card_test.rb +23 -15
- data/test/lib/troo/adaptors/board_test.rb +38 -0
- data/test/lib/troo/adaptors/card_test.rb +49 -0
- data/test/lib/troo/adaptors/comment_test.rb +41 -0
- data/test/lib/troo/adaptors/list_test.rb +38 -0
- data/test/lib/troo/adaptors/member_test.rb +44 -0
- data/test/lib/troo/commands/add/board_test.rb +43 -0
- data/test/lib/troo/commands/add/card_test.rb +44 -0
- data/test/lib/troo/commands/add/comment_test.rb +44 -0
- data/test/lib/troo/commands/add/list_test.rb +44 -0
- data/test/lib/troo/commands/add/resource_test.rb +25 -0
- data/test/lib/troo/commands/default/board_test.rb +37 -0
- data/test/lib/troo/commands/default/card_test.rb +37 -0
- data/test/lib/troo/commands/default/list_test.rb +37 -0
- data/test/lib/troo/commands/default/resource_test.rb +20 -0
- data/test/lib/troo/commands/refresh/all_test.rb +39 -0
- data/test/lib/troo/commands/refresh/board_test.rb +62 -0
- data/test/lib/troo/commands/refresh/card_test.rb +62 -0
- data/test/lib/troo/commands/refresh/list_test.rb +62 -0
- data/test/lib/troo/commands/refresh/resource_test.rb +20 -0
- data/test/lib/troo/commands/show/board_test.rb +65 -0
- data/test/lib/troo/commands/show/boards_test.rb +36 -0
- data/test/lib/troo/commands/show/card_test.rb +64 -0
- data/test/lib/troo/commands/show/comments_test.rb +64 -0
- data/test/lib/troo/commands/show/list_test.rb +64 -0
- data/test/lib/troo/commands/show/resource_test.rb +25 -0
- data/test/lib/troo/commands/status/board_test.rb +43 -0
- data/test/lib/troo/commands/status/card_test.rb +43 -0
- data/test/lib/troo/commands/status/list_test.rb +43 -0
- data/test/lib/troo/commands/status/resource_test.rb +19 -0
- data/test/lib/troo/decorators/board_test.rb +129 -0
- data/test/lib/troo/decorators/card_test.rb +237 -0
- data/test/lib/troo/decorators/comment_test.rb +74 -0
- data/test/lib/troo/decorators/list_test.rb +102 -0
- data/test/lib/troo/decorators/member_test.rb +50 -0
- data/test/lib/troo/external/board_test.rb +74 -41
- data/test/lib/troo/external/card_test.rb +49 -37
- data/test/lib/troo/external/comment_test.rb +43 -33
- data/test/lib/troo/external/list_test.rb +37 -30
- data/test/lib/troo/external/member_test.rb +37 -30
- data/test/lib/troo/external/resource_test.rb +18 -1
- data/test/lib/troo/helpers/command_helpers_test.rb +82 -0
- data/test/lib/troo/{display → helpers}/decorator_helpers_test.rb +6 -6
- data/test/lib/troo/helpers/model_helpers_test.rb +103 -0
- data/test/lib/troo/models/behaviours/set_default_test.rb +54 -0
- data/test/lib/troo/models/board_test.rb +13 -14
- data/test/lib/troo/models/card_test.rb +64 -33
- data/test/lib/troo/models/comment_test.rb +18 -19
- data/test/lib/troo/models/list_test.rb +15 -15
- data/test/lib/troo/models/member_test.rb +18 -18
- data/test/lib/troo/models/persistence/board_test.rb +62 -0
- data/test/lib/troo/models/persistence/card_test.rb +61 -0
- data/test/lib/troo/models/persistence/comment_test.rb +69 -0
- data/test/lib/troo/models/persistence/list_test.rb +60 -0
- data/test/lib/troo/models/persistence/member_test.rb +60 -0
- data/test/lib/troo/models/refresh_test.rb +12 -11
- data/test/lib/troo/models/remote/comment_test.rb +56 -0
- data/test/lib/troo/models/remote/resource_test.rb +26 -0
- data/test/lib/troo/models/retrieval/board_test.rb +93 -0
- data/test/lib/troo/models/retrieval/card_test.rb +101 -0
- data/test/lib/troo/models/retrieval/comment_test.rb +46 -0
- data/test/lib/troo/models/retrieval/list_test.rb +93 -0
- data/test/lib/troo/models/retrieval/member_test.rb +58 -0
- data/test/lib/troo/presentation/sentence_test.rb +57 -0
- data/test/lib/troo/presentation/template_test.rb +17 -16
- data/test/lib/troo/presenters/board_test.rb +79 -0
- data/test/lib/troo/presenters/card_test.rb +41 -0
- data/test/lib/troo/presenters/comment_test.rb +49 -0
- data/test/lib/troo/presenters/list_test.rb +50 -0
- data/test/lib/troo/presenters/member_test.rb +40 -0
- data/test/support/fabrication.rb +31 -32
- data/test/support/vcr_setup.rb +7 -9
- data/test/system_test.sh +55 -0
- data/test/test_helper.rb +10 -10
- data/troo.gemspec +1 -0
- metadata +232 -134
- data/features/add_board.feature +0 -1
- data/features/add_card.feature +0 -1
- data/features/add_comment.feature +0 -1
- data/features/add_list.feature +0 -1
- data/features/move_card_to_list.feature +0 -1
- data/features/refresh.feature +0 -1
- data/features/set_default.feature +0 -7
- data/features/show_board.feature +0 -1
- data/features/show_boards.feature +0 -1
- data/features/show_card.feature +0 -1
- data/features/show_comments.feature +0 -1
- data/features/show_list.feature +0 -1
- data/features/version.feature +0 -8
- data/lib/troo/actions/refresh_all.rb +0 -79
- data/lib/troo/actions/set_default.rb +0 -46
- data/lib/troo/cli/add_cli.rb +0 -83
- data/lib/troo/cli/cli_helpers.rb +0 -34
- data/lib/troo/cli/default_cli.rb +0 -32
- data/lib/troo/cli/main_cli.rb +0 -132
- data/lib/troo/cli/show_cli.rb +0 -64
- data/lib/troo/display/board_decorator.rb +0 -62
- data/lib/troo/display/board_presenter.rb +0 -71
- data/lib/troo/display/card_decorator.rb +0 -100
- data/lib/troo/display/card_presenter.rb +0 -27
- data/lib/troo/display/comment_decorator.rb +0 -33
- data/lib/troo/display/comment_presenter.rb +0 -31
- data/lib/troo/display/list_decorator.rb +0 -57
- data/lib/troo/display/list_presenter.rb +0 -41
- data/lib/troo/display/member_decorator.rb +0 -25
- data/lib/troo/display/member_presenter.rb +0 -59
- data/lib/troo/models/board_persistence.rb +0 -25
- data/lib/troo/models/board_retrieval.rb +0 -45
- data/lib/troo/models/card_persistence.rb +0 -25
- data/lib/troo/models/card_retrieval.rb +0 -49
- data/lib/troo/models/comment_persistence.rb +0 -25
- data/lib/troo/models/comment_retrieval.rb +0 -32
- data/lib/troo/models/list_persistence.rb +0 -25
- data/lib/troo/models/list_retrieval.rb +0 -45
- data/lib/troo/models/member_persistence.rb +0 -25
- data/lib/troo/models/member_retrieval.rb +0 -36
- data/lib/troo/models/persistence.rb +0 -39
- data/test/lib/troo/actions/refresh_all_test.rb +0 -68
- data/test/lib/troo/actions/set_default_test.rb +0 -44
- data/test/lib/troo/cli/add_cli_test.rb +0 -216
- data/test/lib/troo/cli/cli_helpers_test.rb +0 -24
- data/test/lib/troo/cli/default_cli_test.rb +0 -85
- data/test/lib/troo/cli/main_cli_test.rb +0 -234
- data/test/lib/troo/cli/show_cli_test.rb +0 -251
- data/test/lib/troo/display/board_decorator_test.rb +0 -126
- data/test/lib/troo/display/board_presenter_test.rb +0 -77
- data/test/lib/troo/display/card_decorator_test.rb +0 -213
- data/test/lib/troo/display/card_presenter_test.rb +0 -38
- data/test/lib/troo/display/comment_decorator_test.rb +0 -70
- data/test/lib/troo/display/comment_presenter_test.rb +0 -47
- data/test/lib/troo/display/list_decorator_test.rb +0 -98
- data/test/lib/troo/display/list_presenter_test.rb +0 -48
- data/test/lib/troo/display/member_decorator_test.rb +0 -47
- data/test/lib/troo/display/member_presenter_test.rb +0 -70
- data/test/lib/troo/external/board_adaptor_test.rb +0 -36
- data/test/lib/troo/external/card_adaptor_test.rb +0 -50
- data/test/lib/troo/external/comment_adaptor_test.rb +0 -41
- data/test/lib/troo/external/list_adaptor_test.rb +0 -38
- data/test/lib/troo/external/member_adaptor_test.rb +0 -44
- data/test/lib/troo/models/board_persistence_test.rb +0 -61
- data/test/lib/troo/models/board_retrieval_test.rb +0 -93
- data/test/lib/troo/models/card_persistence_test.rb +0 -60
- data/test/lib/troo/models/card_retrieval_test.rb +0 -101
- data/test/lib/troo/models/comment_persistence_test.rb +0 -65
- data/test/lib/troo/models/comment_retrieval_test.rb +0 -46
- data/test/lib/troo/models/list_persistence_test.rb +0 -60
- data/test/lib/troo/models/list_retrieval_test.rb +0 -93
- data/test/lib/troo/models/member_persistence_test.rb +0 -59
- data/test/lib/troo/models/member_retrieval_test.rb +0 -58
- data/test/lib/troo/models/model_helpers_test.rb +0 -103
- data/test/lib/troo/models/persistence_test.rb +0 -6
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Add
|
6
|
+
describe List do
|
7
|
+
let(:described_class) { List }
|
8
|
+
let(:value) { 'Add List Test' }
|
9
|
+
let(:id) {}
|
10
|
+
|
11
|
+
before do
|
12
|
+
Retrieval::Board.stubs(:retrieve)
|
13
|
+
CreateList.stubs(:for).returns(false)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#add' do
|
17
|
+
subject { described_class.new(value, id).add }
|
18
|
+
|
19
|
+
context 'when the parent resource exists' do
|
20
|
+
context 'and the list was created' do
|
21
|
+
before { CreateList.stubs(:for).returns(true) }
|
22
|
+
|
23
|
+
it 'returns a polite message' do
|
24
|
+
subject.must_match(/\'Add List Test\' created/)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'and the list was not created' do
|
29
|
+
it 'returns a polite message' do
|
30
|
+
subject.must_match(/could not/)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when the parent resource does not exist' do
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/could not/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Add
|
6
|
+
describe Resource do
|
7
|
+
let(:described_class) { Resource }
|
8
|
+
let(:value) {}
|
9
|
+
let(:id) {}
|
10
|
+
|
11
|
+
describe '#initialize' do
|
12
|
+
subject { described_class.new(value, id) }
|
13
|
+
|
14
|
+
it 'assigns the value to an instance variable' do
|
15
|
+
subject.instance_variable_get('@value').must_equal(value)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'assigns the id to an instance variable' do
|
19
|
+
subject.instance_variable_get('@id').must_equal(id)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Default
|
6
|
+
describe Board do
|
7
|
+
let(:described_class) { Board }
|
8
|
+
let(:id) { '1' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
@board = Fabricate.build(:board)
|
12
|
+
Retrieval::Board.stubs(:retrieve).returns(resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.dispatch' do
|
16
|
+
subject { described_class.dispatch(id) }
|
17
|
+
|
18
|
+
context 'when the resource exists' do
|
19
|
+
let(:resource) { @board }
|
20
|
+
|
21
|
+
it 'sets the default and returns a polite message' do
|
22
|
+
subject.must_match(/set as default/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when the resource does not exist' do
|
27
|
+
let(:resource) {}
|
28
|
+
|
29
|
+
it 'returns a polite message' do
|
30
|
+
subject.must_match(/cannot be found/)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Default
|
6
|
+
describe Card do
|
7
|
+
let(:described_class) { Card }
|
8
|
+
let(:id) { '1' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
@card = Fabricate.build(:card)
|
12
|
+
Retrieval::Card.stubs(:retrieve).returns(resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.dispatch' do
|
16
|
+
subject { described_class.dispatch(id) }
|
17
|
+
|
18
|
+
context 'when the resource exists' do
|
19
|
+
let(:resource) { @card }
|
20
|
+
|
21
|
+
it 'sets the default and returns a polite message' do
|
22
|
+
subject.must_match(/set as default/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when the resource does not exist' do
|
27
|
+
let(:resource) {}
|
28
|
+
|
29
|
+
it 'returns a polite message' do
|
30
|
+
subject.must_match(/cannot be found/)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Default
|
6
|
+
describe List do
|
7
|
+
let(:described_class) { List }
|
8
|
+
let(:id) { '1' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
@list = Fabricate.build(:list)
|
12
|
+
Retrieval::List.stubs(:retrieve).returns(resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.dispatch' do
|
16
|
+
subject { described_class.dispatch(id) }
|
17
|
+
|
18
|
+
context 'when the resource exists' do
|
19
|
+
let(:resource) { @list }
|
20
|
+
|
21
|
+
it 'sets the default and returns a polite message' do
|
22
|
+
subject.must_match(/set as default/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when the resource does not exist' do
|
27
|
+
let(:resource) {}
|
28
|
+
|
29
|
+
it 'returns a polite message' do
|
30
|
+
subject.must_match(/cannot be found/)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Default
|
6
|
+
describe Resource do
|
7
|
+
let(:described_class) { Resource }
|
8
|
+
let(:id) {}
|
9
|
+
|
10
|
+
describe '#initialize' do
|
11
|
+
subject { described_class.new(id) }
|
12
|
+
|
13
|
+
it 'assigns the id to an instance variable' do
|
14
|
+
subject.instance_variable_get('@id').must_equal(id)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Refresh
|
6
|
+
describe All do
|
7
|
+
let(:described_class) { All }
|
8
|
+
|
9
|
+
before do
|
10
|
+
@board = Fabricate.build(:board)
|
11
|
+
@list = Fabricate.build(:list)
|
12
|
+
@card = Fabricate.build(:card)
|
13
|
+
|
14
|
+
External::Board.stubs(:fetch).returns([@board])
|
15
|
+
External::List.stubs(:fetch).returns([@list])
|
16
|
+
External::Card.stubs(:fetch).returns([@card])
|
17
|
+
External::Comment.stubs(:fetch).returns([])
|
18
|
+
External::Member.stubs(:fetch).returns([])
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '.dispatch' do
|
22
|
+
subject { described_class.dispatch }
|
23
|
+
|
24
|
+
context 'when all the resources are refreshed' do
|
25
|
+
it 'returns a polite message' do
|
26
|
+
subject.must_match(/All local data refreshed/)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when all the resources are not refreshed' do
|
31
|
+
it 'returns a polite message' do
|
32
|
+
skip('Not implemented yet.')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Refresh
|
6
|
+
describe Board do
|
7
|
+
let(:described_class) { Board }
|
8
|
+
let(:id) { '1' }
|
9
|
+
let(:resource) {}
|
10
|
+
let(:retrieved) {}
|
11
|
+
|
12
|
+
before do
|
13
|
+
@board = Fabricate.build(:board)
|
14
|
+
Retrieval::Board.stubs(:retrieve).returns(resource)
|
15
|
+
External::Board.stubs(:fetch).returns(retrieved)
|
16
|
+
end
|
17
|
+
|
18
|
+
after { database_cleanup }
|
19
|
+
|
20
|
+
describe '.dispatch' do
|
21
|
+
subject { described_class.dispatch(id) }
|
22
|
+
|
23
|
+
context 'when the resource exists' do
|
24
|
+
let(:resource) { @board }
|
25
|
+
let(:retrieved) { [@board] }
|
26
|
+
|
27
|
+
context 'and the resource is refreshed' do
|
28
|
+
it 'returns a polite message' do
|
29
|
+
subject.must_match(/refreshed/)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'and multiple resources are refreshed' do
|
34
|
+
let(:retrieved) { [@board, @board] }
|
35
|
+
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/Multiple/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when the resource does not exist' do
|
43
|
+
let(:resource) {}
|
44
|
+
|
45
|
+
it 'returns a polite message' do
|
46
|
+
subject.must_match(/Board cannot be found/)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'and the default resource does not exist' do
|
51
|
+
let(:id) {}
|
52
|
+
let(:resource) {}
|
53
|
+
|
54
|
+
it 'returns a polite message' do
|
55
|
+
subject.must_match(/Default board cannot be found/)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Refresh
|
6
|
+
describe Card do
|
7
|
+
let(:described_class) { Card }
|
8
|
+
let(:id) { '1' }
|
9
|
+
let(:resource) {}
|
10
|
+
let(:retrieved) {}
|
11
|
+
|
12
|
+
before do
|
13
|
+
@card = Fabricate.build(:card)
|
14
|
+
Retrieval::Card.stubs(:retrieve).returns(resource)
|
15
|
+
External::Card.stubs(:fetch).returns(retrieved)
|
16
|
+
end
|
17
|
+
|
18
|
+
after { database_cleanup }
|
19
|
+
|
20
|
+
describe '.dispatch' do
|
21
|
+
subject { described_class.dispatch(id) }
|
22
|
+
|
23
|
+
context 'when the resource exists' do
|
24
|
+
let(:resource) { @card }
|
25
|
+
let(:retrieved) { [@card] }
|
26
|
+
|
27
|
+
context 'and the resource is refreshed' do
|
28
|
+
it 'returns a polite message' do
|
29
|
+
subject.must_match(/refreshed/)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'and multiple resources are refreshed' do
|
34
|
+
let(:retrieved) { [@card, @card] }
|
35
|
+
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/Multiple/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when the resource does not exist' do
|
43
|
+
let(:resource) {}
|
44
|
+
|
45
|
+
it 'returns a polite message' do
|
46
|
+
subject.must_match(/Card cannot be found/)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'and the default resource does not exist' do
|
51
|
+
let(:id) {}
|
52
|
+
let(:resource) {}
|
53
|
+
|
54
|
+
it 'returns a polite message' do
|
55
|
+
subject.must_match(/Default card cannot be found/)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Refresh
|
6
|
+
describe List do
|
7
|
+
let(:described_class) { List }
|
8
|
+
let(:id) { '1' }
|
9
|
+
let(:resource) {}
|
10
|
+
let(:retrieved) {}
|
11
|
+
|
12
|
+
before do
|
13
|
+
@list = Fabricate.build(:list)
|
14
|
+
Retrieval::List.stubs(:retrieve).returns(resource)
|
15
|
+
External::List.stubs(:fetch).returns(retrieved)
|
16
|
+
end
|
17
|
+
|
18
|
+
after { database_cleanup }
|
19
|
+
|
20
|
+
describe '.dispatch' do
|
21
|
+
subject { described_class.dispatch(id) }
|
22
|
+
|
23
|
+
context 'when the resource exists' do
|
24
|
+
let(:resource) { @list }
|
25
|
+
let(:retrieved) { [@list] }
|
26
|
+
|
27
|
+
context 'and the resource is refreshed' do
|
28
|
+
it 'returns a polite message' do
|
29
|
+
subject.must_match(/refreshed/)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'and multiple resources are refreshed' do
|
34
|
+
let(:retrieved) { [@list, @list] }
|
35
|
+
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/Multiple/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when the resource does not exist' do
|
43
|
+
let(:resource) {}
|
44
|
+
|
45
|
+
it 'returns a polite message' do
|
46
|
+
subject.must_match(/List cannot be found/)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'and the default resource does not exist' do
|
51
|
+
let(:id) {}
|
52
|
+
let(:resource) {}
|
53
|
+
|
54
|
+
it 'returns a polite message' do
|
55
|
+
subject.must_match(/Default list cannot be found/)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Refresh
|
6
|
+
describe Resource do
|
7
|
+
let(:described_class) { Resource }
|
8
|
+
let(:id) {}
|
9
|
+
|
10
|
+
describe '#initialize' do
|
11
|
+
subject { described_class.new(id) }
|
12
|
+
|
13
|
+
it 'assigns the id to an instance variable' do
|
14
|
+
subject.instance_variable_get('@id').must_equal(id)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
module Troo
|
5
|
+
module Commands
|
6
|
+
module Show
|
7
|
+
describe Board do
|
8
|
+
let(:described_class) { Board }
|
9
|
+
let(:type) { :board }
|
10
|
+
let(:id) { '1' }
|
11
|
+
let(:default) { false }
|
12
|
+
let(:resource) {}
|
13
|
+
let(:presenter) { stub }
|
14
|
+
|
15
|
+
before do
|
16
|
+
@board = Fabricate.build(:board, default: default)
|
17
|
+
Retrieval::Board.stubs(:retrieve).returns(resource)
|
18
|
+
Presenters::Board.stubs(:new).returns(presenter)
|
19
|
+
presenter.stubs(:show).returns(@board.name)
|
20
|
+
end
|
21
|
+
|
22
|
+
after { database_cleanup }
|
23
|
+
|
24
|
+
describe '.dispatch' do
|
25
|
+
subject { described_class.dispatch(type, id) }
|
26
|
+
|
27
|
+
context 'when a resource ID is provided' do
|
28
|
+
context 'and the resource exists' do
|
29
|
+
let(:resource) { @board }
|
30
|
+
|
31
|
+
it 'presents the board' do
|
32
|
+
subject.must_match(/#{@board.name}/)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'but the resource does not exist' do
|
37
|
+
it 'returns a polite message' do
|
38
|
+
subject.must_match(/Board cannot be found/)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when a resource ID is not provided' do
|
44
|
+
let(:id) {}
|
45
|
+
|
46
|
+
context 'and a default resource is set' do
|
47
|
+
let(:default) { true }
|
48
|
+
let(:resource) { @board }
|
49
|
+
|
50
|
+
it 'presents the board' do
|
51
|
+
subject.must_match(/#{@board.name}/)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'and a default resource is not set' do
|
56
|
+
it 'returns a polite message' do
|
57
|
+
subject.must_match(/to set a default board first/)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Show
|
6
|
+
describe Boards do
|
7
|
+
let(:described_class) { Boards }
|
8
|
+
let(:resources) { [] }
|
9
|
+
|
10
|
+
before do
|
11
|
+
@board = Fabricate.build(:board)
|
12
|
+
Retrieval::Board.stubs(:all).returns(resources)
|
13
|
+
Presenters::Board.stubs(:all).returns(@board.name)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.dispatch' do
|
17
|
+
subject { described_class.dispatch }
|
18
|
+
|
19
|
+
context 'when boards exist' do
|
20
|
+
let(:resources) { [@board] }
|
21
|
+
|
22
|
+
it 'presents the boards' do
|
23
|
+
subject.must_match(/#{@board.name}/)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'when no boards exist' do
|
28
|
+
it 'returns a polite message' do
|
29
|
+
subject.must_match(/Boards cannot be found/)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Show
|
6
|
+
describe Card do
|
7
|
+
let(:described_class) { Card }
|
8
|
+
let(:type) { :card }
|
9
|
+
let(:id) { '1' }
|
10
|
+
let(:default) { false }
|
11
|
+
let(:resource) {}
|
12
|
+
let(:presenter) { stub }
|
13
|
+
|
14
|
+
before do
|
15
|
+
@card = Fabricate.build(:card, default: default)
|
16
|
+
Retrieval::Card.stubs(:retrieve).returns(resource)
|
17
|
+
Presenters::Card.stubs(:new).returns(presenter)
|
18
|
+
presenter.stubs(:show).returns(@card.name)
|
19
|
+
end
|
20
|
+
|
21
|
+
after { database_cleanup }
|
22
|
+
|
23
|
+
describe '.dispatch' do
|
24
|
+
subject { described_class.dispatch(type, id) }
|
25
|
+
|
26
|
+
context 'when a resource ID is provided' do
|
27
|
+
context 'and the resource exists' do
|
28
|
+
let(:resource) { @card }
|
29
|
+
|
30
|
+
it 'presents the cards' do
|
31
|
+
subject.must_match(/#{@card.name}/)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'but the resource does not exist' do
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/Card cannot be found/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when a resource ID is not provided' do
|
43
|
+
let(:id) {}
|
44
|
+
|
45
|
+
context 'and a default resource is set' do
|
46
|
+
let(:default) { true }
|
47
|
+
let(:resource) { @card }
|
48
|
+
|
49
|
+
it 'presents the cards' do
|
50
|
+
subject.must_match(/#{@card.name}/)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'and a default resource is not set' do
|
55
|
+
it 'returns a polite message' do
|
56
|
+
subject.must_match(/to set a default card first/)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require_relative '../../../../test_helper'
|
2
|
+
|
3
|
+
module Troo
|
4
|
+
module Commands
|
5
|
+
module Show
|
6
|
+
describe Comments do
|
7
|
+
let(:described_class) { Comments }
|
8
|
+
let(:type) { :comments }
|
9
|
+
let(:id) { '1' }
|
10
|
+
let(:default) { false }
|
11
|
+
let(:resource) {}
|
12
|
+
let(:presenter) { stub }
|
13
|
+
|
14
|
+
before do
|
15
|
+
@card = Fabricate.build(:card, default: default)
|
16
|
+
Retrieval::Card.stubs(:retrieve).returns(resource)
|
17
|
+
Presenters::Comment.stubs(:new).returns(presenter)
|
18
|
+
presenter.stubs(:show).returns(@card.name)
|
19
|
+
end
|
20
|
+
|
21
|
+
after { database_cleanup }
|
22
|
+
|
23
|
+
describe '.dispatch' do
|
24
|
+
subject { described_class.dispatch(type, id) }
|
25
|
+
|
26
|
+
context 'when a resource ID is provided' do
|
27
|
+
context 'and the resource exists' do
|
28
|
+
let(:resource) { @card }
|
29
|
+
|
30
|
+
it 'presents the comments' do
|
31
|
+
subject.must_match(/#{@card.name}/)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'but the resource does not exist' do
|
36
|
+
it 'returns a polite message' do
|
37
|
+
subject.must_match(/Card cannot be found/)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when a resource ID is not provided' do
|
43
|
+
let(:id) {}
|
44
|
+
|
45
|
+
context 'and a default resource is set' do
|
46
|
+
let(:default) { true }
|
47
|
+
let(:resource) { @card }
|
48
|
+
|
49
|
+
it 'presents the comments' do
|
50
|
+
subject.must_match(/#{@card.name}/)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'and a default resource is not set' do
|
55
|
+
it 'returns a polite message' do
|
56
|
+
subject.must_match(/to set a default card first/)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|