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 | 32 | CreateEnterprise.pending_for(self, :code => code).first |
| 33 | 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 | 43 | end | ... | ... |
app/models/task.rb
| ... | ... | @@ -138,6 +138,10 @@ class Task < ActiveRecord::Base |
| 138 | 138 | def pending_for(target, conditions= nil) |
| 139 | 139 | self.find(:all, :conditions => { :target_id => target.id, :status => Task::Status::ACTIVE }.merge(conditions || {})) |
| 140 | 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 | 146 | # generates a random code string consisting of 36 characters in the ranges |
| 143 | 147 | # a-z and 0-9 | ... | ... |
test/unit/organization_test.rb
| ... | ... | @@ -80,4 +80,18 @@ class OrganizationTest < Test::Unit::TestCase |
| 80 | 80 | assert_nil org.find_pending_validation('lele') |
| 81 | 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 | 97 | end | ... | ... |
test/unit/task_test.rb
| ... | ... | @@ -171,6 +171,31 @@ class TaskTest < Test::Unit::TestCase |
| 171 | 171 | assert_equal [], Task.pending_for(target, :id => -1) |
| 172 | 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 | 199 | protected |
| 175 | 200 | |
| 176 | 201 | def sample_user | ... | ... |