Commit e8d6d9a63a424db9b8712a726810035642d8b5a6
1 parent
db1140ee
Exists in
master
and in
22 other branches
ActionItem16: finding processed tasks (and consequently, enterprise validations)
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@866 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
4 changed files
with
51 additions
and
0 deletions
Show diff stats
app/models/organization.rb
@@ -32,4 +32,12 @@ class Organization < Profile | @@ -32,4 +32,12 @@ class Organization < Profile | ||
32 | CreateEnterprise.pending_for(self, :code => code).first | 32 | CreateEnterprise.pending_for(self, :code => code).first |
33 | end | 33 | end |
34 | 34 | ||
35 | + def processed_validations | ||
36 | + CreateEnterprise.processed_for(self) | ||
37 | + end | ||
38 | + | ||
39 | + def find_processed_validation(code) | ||
40 | + CreateEnterprise.processed_for(self, :code => code).first | ||
41 | + end | ||
42 | + | ||
35 | end | 43 | end |
app/models/task.rb
@@ -138,6 +138,10 @@ class Task < ActiveRecord::Base | @@ -138,6 +138,10 @@ class Task < ActiveRecord::Base | ||
138 | def pending_for(target, conditions= nil) | 138 | def pending_for(target, conditions= nil) |
139 | self.find(:all, :conditions => { :target_id => target.id, :status => Task::Status::ACTIVE }.merge(conditions || {})) | 139 | self.find(:all, :conditions => { :target_id => target.id, :status => Task::Status::ACTIVE }.merge(conditions || {})) |
140 | end | 140 | end |
141 | + | ||
142 | + def processed_for(target, conditions = nil) | ||
143 | + self.find(:all, :conditions => { :target_id => target.id, :status => [Task::Status::CANCELLED, Task::Status::FINISHED] }.merge(conditions || {})) | ||
144 | + end | ||
141 | 145 | ||
142 | # generates a random code string consisting of 36 characters in the ranges | 146 | # generates a random code string consisting of 36 characters in the ranges |
143 | # a-z and 0-9 | 147 | # a-z and 0-9 |
test/unit/organization_test.rb
@@ -80,4 +80,18 @@ class OrganizationTest < Test::Unit::TestCase | @@ -80,4 +80,18 @@ class OrganizationTest < Test::Unit::TestCase | ||
80 | assert_nil org.find_pending_validation('lele') | 80 | assert_nil org.find_pending_validation('lele') |
81 | end | 81 | end |
82 | 82 | ||
83 | + should 'be able to find already processed validations by target' do | ||
84 | + org = Organization.new | ||
85 | + empty = mock | ||
86 | + CreateEnterprise.expects(:processed_for).with(org).returns(empty) | ||
87 | + assert_same empty, org.processed_validations | ||
88 | + end | ||
89 | + | ||
90 | + should 'be able to find an already processed validation by its code' do | ||
91 | + org = Organization.new | ||
92 | + empty = mock | ||
93 | + CreateEnterprise.expects(:processed_for).with(org, {:code => 'lalalala'}).returns([empty]) | ||
94 | + assert_same empty, org.find_processed_validation('lalalala') | ||
95 | + end | ||
96 | + | ||
83 | end | 97 | end |
test/unit/task_test.rb
@@ -171,6 +171,31 @@ class TaskTest < Test::Unit::TestCase | @@ -171,6 +171,31 @@ class TaskTest < Test::Unit::TestCase | ||
171 | assert_equal [], Task.pending_for(target, :id => -1) | 171 | assert_equal [], Task.pending_for(target, :id => -1) |
172 | end | 172 | end |
173 | 173 | ||
174 | + should 'be able to list processed tasks' do | ||
175 | + target = sample_user | ||
176 | + | ||
177 | + task = Task.new | ||
178 | + task.target = target | ||
179 | + task.finish | ||
180 | + | ||
181 | + # this one shouldn't be listed as processed, since it was not | ||
182 | + task2 = Task.new | ||
183 | + task2.target = target | ||
184 | + target.save! | ||
185 | + | ||
186 | + assert_equal [task], Task.processed_for(target) | ||
187 | + end | ||
188 | + | ||
189 | + should 'be able to pass optional parameters for getting processed tasks' do | ||
190 | + target = sample_user | ||
191 | + | ||
192 | + task = Task.new | ||
193 | + task.target = target | ||
194 | + task.finish | ||
195 | + | ||
196 | + assert_equal [], Task.processed_for(target, :id => -1) | ||
197 | + end | ||
198 | + | ||
174 | protected | 199 | protected |
175 | 200 | ||
176 | def sample_user | 201 | def sample_user |