things-client 0.1.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.
@@ -0,0 +1,153 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Things::Area" do
4
+
5
+ before do
6
+ Things::App.activate
7
+ @area = Things::Area.new(:name => 'TEST - Foo')
8
+ end
9
+
10
+ after do
11
+ # close all windows when done
12
+ Things::App.instance.windows.get.each do |window|
13
+ Things::App.instance!.close(window)
14
+ end
15
+ end
16
+
17
+ describe "#self.new" do
18
+
19
+ it "should create a new Things::Area instance with properties" do
20
+ @area.name.should == "TEST - Foo"
21
+ end
22
+
23
+ it "should not be sent to Things yet" do
24
+ @area.id_.should == nil
25
+ Things::App.instance.areas.get.collect { |area| area.name.get }.should_not include("TEST - Foo")
26
+ end
27
+
28
+ end
29
+
30
+ describe "#new?" do
31
+
32
+ it "should return whether the instance is new or not" do
33
+ @area.new?.should == true
34
+ end
35
+
36
+ end
37
+
38
+ describe "#save" do
39
+
40
+ before do
41
+ @area.save
42
+ end
43
+
44
+ after do
45
+ @area.delete
46
+ Things::App.instance.empty_trash
47
+ end
48
+
49
+ describe "on a new area" do
50
+
51
+ it "should create the area" do
52
+ @area.id_.should_not be_nil
53
+ @area.new?.should == false
54
+
55
+ Things::App.instance.areas.get.collect { |area| area.name.get }.should include("TEST - Foo")
56
+ end
57
+
58
+ end
59
+
60
+ describe "on an existing area" do
61
+ it "should update the area" do
62
+ @area.name = 'TEST - Boo'
63
+ @area.save
64
+ @found = Things::Area.find_by_id(@area.id_)
65
+ @found.name.should == 'TEST - Boo'
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ describe '#create' do
72
+
73
+ before do
74
+ @area.delete
75
+ Things::App.instance.empty_trash
76
+ end
77
+
78
+ after do
79
+ @area.delete
80
+ Things::App.instance.empty_trash
81
+ end
82
+
83
+ it "should create a new area based on supplied properties" do
84
+ @area = Things::Area.create(:name => 'TEST - Goo')
85
+ @area.new?.should == false
86
+ @area.id_.should_not be_nil
87
+ @area.name.should == 'TEST - Goo'
88
+ end
89
+
90
+
91
+ end
92
+
93
+ describe '#delete' do
94
+
95
+ before do
96
+ @area.save
97
+ Things::App.instance.areas.name.get.should include(@area.name)
98
+ end
99
+
100
+ it "should remove a area" do
101
+ @area.delete
102
+ Things::App.instance.empty_trash
103
+ Things::App.instance.areas.name.get.should_not include(@area.name)
104
+ end
105
+
106
+ end
107
+
108
+ describe 'finding' do
109
+
110
+ before do
111
+ @area.save
112
+ end
113
+
114
+ after do
115
+ @found.class.should == Things::Area
116
+ @found.id_.should == @area.id_
117
+ @found.name.should == @area.name
118
+
119
+ @area.delete
120
+ Things::App.instance.empty_trash
121
+ end
122
+
123
+ describe '#find_by_name' do
124
+
125
+ it "should find a area based on its name" do
126
+ @found = Things::Area.find_by_name('TEST - Foo')
127
+ end
128
+
129
+ end
130
+
131
+ describe '#find_by_id' do
132
+
133
+ it "should find a area based on its id" do
134
+ @found = Things::Area.find_by_id(@area.id_)
135
+ end
136
+
137
+ end
138
+
139
+ describe '#find' do
140
+ it "should find a area based on its name" do
141
+ @found = Things::Area.find('TEST - Foo')
142
+ end
143
+
144
+ it "should find a area based on its id" do
145
+ @found = Things::Area.find(@area.id_)
146
+ end
147
+ end
148
+
149
+ end
150
+
151
+
152
+
153
+ end
@@ -0,0 +1,54 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe "Things::Collections::Todo" do
4
+
5
+ describe "#self.all" do
6
+ before do
7
+ @todo_a = Things::Todo.create(:name => 'TEST - AAA')
8
+ @todo_b = Things::Todo.create(:name => 'TEST - BBB')
9
+ end
10
+
11
+ after do
12
+ @todo_a.delete
13
+ @todo_b.delete
14
+ Things::App.instance.empty_trash
15
+ end
16
+
17
+ it "should return a collection of all todos as Things::Todo objects" do
18
+ Things::Collections::Todo.all.collect(&:id_).should include(@todo_a.id_)
19
+ Things::Collections::Todo.all.collect(&:id_).should include(@todo_b.id_)
20
+ end
21
+
22
+
23
+ end
24
+
25
+ describe "#self.active" do
26
+
27
+ before do
28
+ @todo_a = Things::Todo.create(:name => 'TEST - AAA')
29
+ @todo_b = Things::Todo.create(:name => 'TEST - BBB')
30
+ Things::Collections::Todo.active.collect(&:id_).should include(@todo_a.id_)
31
+ Things::Collections::Todo.active.collect(&:id_).should include(@todo_b.id_)
32
+ end
33
+
34
+ after do
35
+ @todo_a.delete
36
+ @todo_b.delete
37
+ Things::App.instance.empty_trash
38
+ end
39
+
40
+ it "should not include completed todos" do
41
+ @todo_b.completion_date = Time.now
42
+ @todo_b.save
43
+ Things::Collections::Todo.active.collect(&:id_).should include(@todo_a.id_)
44
+ Things::Collections::Todo.active.collect(&:id_).should_not include(@todo_b.id_)
45
+ end
46
+
47
+ it "should not include deleted todos" do
48
+ @todo_a.delete
49
+ Things::Collections::Todo.active.collect(&:id_).should_not include(@todo_a.id_)
50
+ Things::Collections::Todo.active.collect(&:id_).should include(@todo_b.id_)
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,153 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Things::Project" do
4
+
5
+ before do
6
+ Things::App.activate
7
+ @project = Things::Project.new(:name => 'TEST - Foo')
8
+ end
9
+
10
+ after do
11
+ # close all windows when done
12
+ Things::App.instance.windows.get.each do |window|
13
+ Things::App.instance!.close(window)
14
+ end
15
+ end
16
+
17
+ describe "#self.new" do
18
+
19
+ it "should create a new Things::Project instance with properties" do
20
+ @project.name.should == "TEST - Foo"
21
+ end
22
+
23
+ it "should not be sent to Things yet" do
24
+ @project.id_.should == nil
25
+ Things::App.instance.projects.get.collect { |project| project.name.get }.should_not include("TEST - Foo")
26
+ end
27
+
28
+ end
29
+
30
+ describe "#new?" do
31
+
32
+ it "should return whether the instance is new or not" do
33
+ @project.new?.should == true
34
+ end
35
+
36
+ end
37
+
38
+ describe "#save" do
39
+
40
+ before do
41
+ @project.save
42
+ end
43
+
44
+ after do
45
+ @project.delete
46
+ Things::App.instance.empty_trash
47
+ end
48
+
49
+ describe "on a new project" do
50
+
51
+ it "should create the project" do
52
+ @project.id_.should_not be_nil
53
+ @project.new?.should == false
54
+
55
+ Things::App.instance.projects.get.collect { |project| project.name.get }.should include("TEST - Foo")
56
+ end
57
+
58
+ end
59
+
60
+ describe "on an existing project" do
61
+ it "should update the project" do
62
+ @project.name = 'TEST - Boo'
63
+ @project.save
64
+ @found = Things::Project.find_by_id(@project.id_)
65
+ @found.name.should == 'TEST - Boo'
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ describe '#create' do
72
+
73
+ before do
74
+ @project.delete
75
+ Things::App.instance.empty_trash
76
+ end
77
+
78
+ after do
79
+ @project.delete
80
+ Things::App.instance.empty_trash
81
+ end
82
+
83
+ it "should create a new project based on supplied properties" do
84
+ @project = Things::Project.create(:name => 'TEST - Goo')
85
+ @project.new?.should == false
86
+ @project.id_.should_not be_nil
87
+ @project.name.should == 'TEST - Goo'
88
+ end
89
+
90
+
91
+ end
92
+
93
+ describe '#delete' do
94
+
95
+ before do
96
+ @project.save
97
+ Things::App.instance.projects.name.get.should include(@project.name)
98
+ end
99
+
100
+ it "should remove a project" do
101
+ @project.delete
102
+ Things::App.instance.empty_trash
103
+ Things::App.instance.projects.name.get.should_not include(@project.name)
104
+ end
105
+
106
+ end
107
+
108
+ describe 'finding' do
109
+
110
+ before do
111
+ @project.save
112
+ end
113
+
114
+ after do
115
+ @found.class.should == Things::Project
116
+ @found.id_.should == @project.id_
117
+ @found.name.should == @project.name
118
+
119
+ @project.delete
120
+ Things::App.instance.empty_trash
121
+ end
122
+
123
+ describe '#find_by_name' do
124
+
125
+ it "should find a project based on its name" do
126
+ @found = Things::Project.find_by_name('TEST - Foo')
127
+ end
128
+
129
+ end
130
+
131
+ describe '#find_by_id' do
132
+
133
+ it "should find a project based on its id" do
134
+ @found = Things::Project.find_by_id(@project.id_)
135
+ end
136
+
137
+ end
138
+
139
+ describe '#find' do
140
+ it "should find a project based on its name" do
141
+ @found = Things::Project.find('TEST - Foo')
142
+ end
143
+
144
+ it "should find a project based on its id" do
145
+ @found = Things::Project.find(@project.id_)
146
+ end
147
+ end
148
+
149
+ end
150
+
151
+
152
+
153
+ end
@@ -0,0 +1,153 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Things::Tag" do
4
+
5
+ before do
6
+ Things::App.activate
7
+ @tag = Things::Tag.new(:name => 'TEST - Foo')
8
+ end
9
+
10
+ after do
11
+ # close all windows when done
12
+ Things::App.instance.windows.get.each do |window|
13
+ Things::App.instance!.close(window)
14
+ end
15
+ end
16
+
17
+ describe "#self.new" do
18
+
19
+ it "should create a new Things::Tag instance with properties" do
20
+ @tag.name.should == "TEST - Foo"
21
+ end
22
+
23
+ it "should not be sent to Things yet" do
24
+ @tag.id_.should == nil
25
+ Things::App.instance.tags.get.collect { |tag| tag.name.get }.should_not include("TEST - Foo")
26
+ end
27
+
28
+ end
29
+
30
+ describe "#new?" do
31
+
32
+ it "should return whether the instance is new or not" do
33
+ @tag.new?.should == true
34
+ end
35
+
36
+ end
37
+
38
+ describe "#save" do
39
+
40
+ before do
41
+ @tag.save
42
+ end
43
+
44
+ after do
45
+ @tag.delete
46
+ Things::App.instance.empty_trash
47
+ end
48
+
49
+ describe "on a new tag" do
50
+
51
+ it "should create the tag" do
52
+ @tag.id_.should_not be_nil
53
+ @tag.new?.should == false
54
+
55
+ Things::App.instance.tags.get.collect { |tag| tag.name.get }.should include("TEST - Foo")
56
+ end
57
+
58
+ end
59
+
60
+ describe "on an existing tag" do
61
+ it "should update the tag" do
62
+ @tag.name = 'TEST - Boo'
63
+ @tag.save
64
+ @found = Things::Tag.find_by_id(@tag.id_)
65
+ @found.name.should == 'TEST - Boo'
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ describe '#create' do
72
+
73
+ before do
74
+ @tag.delete
75
+ Things::App.instance.empty_trash
76
+ end
77
+
78
+ after do
79
+ @tag.delete
80
+ Things::App.instance.empty_trash
81
+ end
82
+
83
+ it "should create a new tag based on supplied properties" do
84
+ @tag = Things::Tag.create(:name => 'TEST - Goo')
85
+ @tag.new?.should == false
86
+ @tag.id_.should_not be_nil
87
+ @tag.name.should == 'TEST - Goo'
88
+ end
89
+
90
+
91
+ end
92
+
93
+ describe '#delete' do
94
+
95
+ before do
96
+ @tag.save
97
+ Things::App.instance.tags.name.get.should include(@tag.name)
98
+ end
99
+
100
+ it "should remove a tag" do
101
+ @tag.delete
102
+ Things::App.instance.empty_trash
103
+ Things::App.instance.tags.name.get.should_not include(@tag.name)
104
+ end
105
+
106
+ end
107
+
108
+ describe 'finding' do
109
+
110
+ before do
111
+ @tag.save
112
+ end
113
+
114
+ after do
115
+ @found.class.should == Things::Tag
116
+ @found.id_.should == @tag.id_
117
+ @found.name.should == @tag.name
118
+
119
+ @tag.delete
120
+ Things::App.instance.empty_trash
121
+ end
122
+
123
+ describe '#find_by_name' do
124
+
125
+ it "should find a tag based on its name" do
126
+ @found = Things::Tag.find_by_name('TEST - Foo')
127
+ end
128
+
129
+ end
130
+
131
+ describe '#find_by_id' do
132
+
133
+ it "should find a tag based on its id" do
134
+ @found = Things::Tag.find_by_id(@tag.id_)
135
+ end
136
+
137
+ end
138
+
139
+ describe '#find' do
140
+ it "should find a tag based on its name" do
141
+ @found = Things::Tag.find('TEST - Foo')
142
+ end
143
+
144
+ it "should find a tag based on its id" do
145
+ @found = Things::Tag.find(@tag.id_)
146
+ end
147
+ end
148
+
149
+ end
150
+
151
+
152
+
153
+ end
@@ -0,0 +1,160 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Things::Todo" do
4
+
5
+ before do
6
+ Things::App.activate
7
+ @todo = Things::Todo.new(:name => 'TEST - Foo', :notes => 'TEST - Fooer')
8
+ end
9
+
10
+ after do
11
+ # close all windows when done
12
+ Things::App.instance.windows.get.each do |window|
13
+ Things::App.instance!.close(window)
14
+ end
15
+ end
16
+
17
+ describe "#self.new" do
18
+
19
+ it "should create a new Things::Todo instance with properties" do
20
+ @todo.name.should == "TEST - Foo"
21
+ @todo.notes.should == "TEST - Fooer"
22
+ end
23
+
24
+ it "should not be sent to Things yet" do
25
+ @todo.id_.should == nil
26
+ active = (Things::App.instance.todos.get - Things::List.trash.todos.get)
27
+ active.collect { |todo| todo.name.get }.should_not include("TEST - Foo")
28
+ end
29
+
30
+ end
31
+
32
+ describe "#new?" do
33
+
34
+ it "should return whether the instance is new or not" do
35
+ @todo.new?.should == true
36
+ end
37
+
38
+ end
39
+
40
+ describe "#save" do
41
+
42
+ before do
43
+ @todo.save
44
+ end
45
+
46
+ after do
47
+ @todo.delete
48
+ Things::App.instance.empty_trash
49
+ end
50
+
51
+ describe "on a new todo" do
52
+
53
+ it "should create the todo" do
54
+ @todo.id_.should_not be_nil
55
+ @todo.new?.should == false
56
+ active = (Things::App.instance.todos.get - Things::List.trash.todos.get)
57
+ active.collect { |todo| todo.name.get }.should include("TEST - Foo")
58
+ end
59
+
60
+ end
61
+
62
+ describe "on an existing todo" do
63
+ it "should update the todo" do
64
+ @todo.name = 'TEST - Boo'
65
+ @todo.save
66
+ @found = Things::Todo.find_by_id(@todo.id_)
67
+ @found.name.should == 'TEST - Boo'
68
+ end
69
+ end
70
+
71
+ end
72
+
73
+ describe '#create' do
74
+
75
+ before do
76
+ @todo.delete
77
+ Things::App.instance.empty_trash
78
+ end
79
+
80
+ after do
81
+ @todo.delete
82
+ Things::App.instance.empty_trash
83
+ end
84
+
85
+ it "should create a new todo based on supplied properties" do
86
+ @todo = Things::Todo.create(:name => 'TEST - Goo')
87
+ @todo.new?.should == false
88
+ @todo.id_.should_not be_nil
89
+ @todo.name.should == 'TEST - Goo'
90
+ end
91
+
92
+
93
+ end
94
+
95
+ describe '#delete' do
96
+
97
+ before do
98
+ @todo.save
99
+ Things::App.lists.inbox.todos.name.get.should include(@todo.name)
100
+ end
101
+
102
+ it "should remove a todo" do
103
+ @todo.delete
104
+ Things::App.lists.inbox.todos.name.get.should_not include(@todo.name)
105
+ Things::App.lists.trash.todos.name.get.should include(@todo.name)
106
+ end
107
+
108
+ after do
109
+ Things::App.instance.empty_trash
110
+ end
111
+
112
+ end
113
+
114
+ describe 'finding' do
115
+
116
+ before do
117
+ @todo.save
118
+ end
119
+
120
+ after do
121
+ @found.class.should == Things::Todo
122
+ @found.id_.should == @todo.id_
123
+ @found.name.should == @todo.name
124
+ @found.notes.should == @todo.notes
125
+
126
+ @todo.delete
127
+ Things::App.instance.empty_trash
128
+ end
129
+
130
+ describe '#find_by_name' do
131
+
132
+ it "should find a todo based on its name" do
133
+ @found = Things::Todo.find_by_name('TEST - Foo')
134
+ end
135
+
136
+ end
137
+
138
+ describe '#find_by_id' do
139
+
140
+ it "should find a todo based on its id" do
141
+ @found = Things::Todo.find_by_id(@todo.id_)
142
+ end
143
+
144
+ end
145
+
146
+ describe '#find' do
147
+ it "should find a todo based on its name" do
148
+ @found = Things::Todo.find('TEST - Foo')
149
+ end
150
+
151
+ it "should find a todo based on its id" do
152
+ @found = Things::Todo.find(@todo.id_)
153
+ end
154
+ end
155
+
156
+ end
157
+
158
+
159
+
160
+ end
@@ -0,0 +1,15 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Things" do
4
+
5
+ it "should load appropriate classes and modules" do
6
+ lambda do
7
+ Things::App
8
+ Things::Todo
9
+ Things::List
10
+ Things::Status
11
+ Things::Collections::Todo
12
+ end.should_not raise_error(NameError)
13
+ end
14
+
15
+ end