taskmapper-basecamp 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.1
1
+ 0.6.2
@@ -121,6 +121,10 @@ module TaskMapper::Provider
121
121
  self.position
122
122
  end
123
123
 
124
+ def resolution
125
+ self.completed ? self.completed : 'In Progress'
126
+ end
127
+
124
128
  def priority=(pri)
125
129
  self.position = pri
126
130
  end
@@ -146,7 +150,7 @@ module TaskMapper::Provider
146
150
  end
147
151
 
148
152
  def assignee
149
- self.responsible_party_name
153
+ self.responsible_party_name ? self.responsible_party_name : 'Unassigned'
150
154
  end
151
155
 
152
156
  def requestor
data/spec/tickets_spec.rb CHANGED
@@ -2,82 +2,86 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe TaskMapper::Provider::Basecamp::Ticket do
4
4
  let(:project_id) { 5220065 }
5
- before(:all) do
6
- @headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
7
- @wheaders = @headers.merge('Content-Type' => 'application/xml')
8
- ActiveResource::HttpMock.respond_to do |mock|
9
- mock.get '/projects/5220065.xml', @headers, fixture_for('projects/5220065'), 200
10
- end
11
- @project = tm.project(project_id)
12
- end
13
- let(:ticket_id) { 133184178 }
5
+ let(:headers) { {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'} }
6
+ let(:wheaders) { headers.merge('Content-Type' => 'application/xml') }
7
+ let(:project) { tm.project(project_id) }
14
8
  let(:tm) { TaskMapper.new(:basecamp, :domain => 'ticketmaster.basecamphq.com', :token => '000000') }
15
9
  let(:ticket_class) { TaskMapper::Provider::Basecamp::Ticket }
16
10
 
17
- describe "Retrieve tickets" do
18
- before(:each) do
11
+ context "Retrieve tickets" do
12
+ before(:all) do
19
13
  ActiveResource::HttpMock.respond_to do |mock|
20
- mock.get '/todo_lists.xml?responsible_party=', @headers, fixture_for('todo_list_with_items'), 200
14
+ mock.get '/projects/5220065.xml', headers, fixture_for('projects/5220065'), 200
15
+ mock.get '/todo_lists.xml?responsible_party=', headers, fixture_for('todo_list_with_items'), 200
21
16
  end
22
17
  end
23
-
24
- context "when #tickets is call for a project instance" do
25
- subject { @project.tickets }
26
- it { should be_an_instance_of(Array) }
27
- it { subject.first.should be_an_instance_of(ticket_class) }
18
+
19
+ shared_examples_for "ticket 133184178" do
20
+ its(:id) { should == 133184178 }
21
+ its(:title) { should match /updated/ }
22
+ its(:priority) { should == 1 }
23
+ its(:status) { should == 'incomplete' }
24
+ its(:resolution) { should == 'In Progress' }
25
+ its(:created_at) { should be_an_instance_of Time }
26
+ its(:updated_at) { should be_an_instance_of Time }
27
+ its(:description) { should match /updated/ }
28
+ its(:assignee) { should == 'Unassigned' }
29
+ its(:requestor) { should match /Clutch/ }
30
+ its(:project_id) { should == 5220065 }
28
31
  end
29
32
 
30
- context "when #tickets is call to a project instance with an array of id's" do
31
- subject { @project.tickets([ticket_id]) }
32
- it { should be_an_instance_of(Array) }
33
- it { subject.first.should be_an_instance_of(ticket_class) }
34
- it { subject.first.id.should be_eql(ticket_id) }
35
- end
33
+ describe "Reatrieve all" do
34
+ let(:tickets) { project.tickets }
35
+ subject { tickets }
36
36
 
37
- context "when #tickets is call to a project instance with attributes" do
38
- subject { @project.tickets(:id => ticket_id) }
39
- it { should be_an_instance_of(Array) }
40
- it { subject.first.should be_an_instance_of(ticket_class) }
41
- it { subject.first.id.should be_eql(ticket_id) }
37
+ its(:count) { should == 4 }
38
+
39
+ describe :first do
40
+ subject { tickets.first }
41
+ it_behaves_like "ticket 133184178"
42
+ end
42
43
  end
43
- end
44
-
45
- describe "Retrieve a single ticket" do
46
- context "when #ticket is call to a project instance with an ticket id" do
47
- subject { @project.ticket(ticket_id) }
48
- it { should be_an_instance_of(ticket_class) }
49
- it { subject.id.should be_eql(ticket_id) }
44
+
45
+ pending "Search passing ids array'" do
46
+ let(:tickets) { project.tickets [133184178, 133180422] }
47
+ subject { tickets }
48
+
49
+ its(:count) { should == 2 }
50
+
51
+ describe :first do
52
+ subject { tickets.first }
53
+ it_behaves_like "ticket 133184178"
54
+ end
50
55
  end
51
56
 
52
- context "when #ticket is call to a project instance with ticket attributes" do
53
- subject { @project.ticket(:id => ticket_id) }
54
- it { should be_an_instance_of(ticket_class) }
55
- it { subject.id.should be_eql(ticket_id) }
57
+ describe "Find by id" do
58
+ subject { project.ticket 133184178 }
59
+ it_behaves_like "ticket 133184178"
56
60
  end
57
61
  end
58
62
 
59
- describe "Update and creation" do
63
+ pending "Update and creation" do
60
64
  before(:all) do
61
65
  ActiveResource::HttpMock.respond_to do |mock|
62
- mock.post '/todo_lists/9972756/todo_items.xml', @wheaders, '', 200
63
- mock.post '/projects/5220065/todo_lists.xml', @wheaders, '', 200
66
+ mock.post '/todo_lists/9972756/todo_items.xml', wheaders, '', 200
67
+ mock.post '/projects/5220065/todo_lists.xml', wheaders, '', 200
64
68
  end
65
69
  end
66
70
 
67
71
  context "when an instance of ticket is changed and then called the save method" do
68
- subject { @project.ticket(ticket_id) }
72
+ subject { project.ticket(133184178) }
69
73
  pending { subject.save.should be_false }
70
74
  end
71
75
 
72
76
  context "when #ticket! method is call to a project instance" do
73
- subject { @project.ticket!(:todo_list_id => 9972756, :title => 'Ticket #12', :description => 'Body') }
77
+ subject { project.ticket!(:todo_list_id => 9972756, :title => 'Ticket #12', :description => 'Body') }
74
78
  it { should be_an_instance_of(ticket_class) }
75
79
  it { subject.project_id.should_not be_nil }
76
80
  it { subject.todo_list_id.should_not be_nil }
77
81
  end
78
82
 
79
83
  context "when #ticket! method is call without a todo_list_id" do
80
- subject { @project.ticket!(:title => 'Ticket #13', :description => 'Body') }
84
+ subject { project.ticket!(:title => 'Ticket #13', :description => 'Body') }
81
85
  pending { should be_an_instance_of(ticket_class) }
82
86
  pending { subject.project_id.should_not be_nil }
83
87
  pending { subject.todo_list_id.should_not be_nil }
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "taskmapper-basecamp"
8
- s.version = "0.6.1"
8
+ s.version = "0.6.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["HybridGroup"]
12
- s.date = "2012-08-16"
12
+ s.date = "2012-08-21"
13
13
  s.description = "This gem provides an interface to basecamp through the taskmapper gem"
14
14
  s.email = "hong.quach@abigfisch.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskmapper-basecamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-16 00:00:00.000000000 Z
12
+ date: 2012-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: taskmapper
@@ -177,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
177
  version: '0'
178
178
  segments:
179
179
  - 0
180
- hash: -845405475
180
+ hash: -39678771
181
181
  required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements: