Commit b942e7fe9fc40d08b02cc19a8209bf4bade6c8b8
1 parent
d870ebf0
Exists in
master
and in
29 other branches
Put activation_job in a separate file for community track
Showing
4 changed files
with
50 additions
and
33 deletions
Show diff stats
plugins/community_track/lib/community_track_plugin/activation_job.rb
0 → 100644
| @@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
| 1 | +class CommunityTrackPlugin::ActivationJob < Struct.new(:step_id) | ||
| 2 | + | ||
| 3 | + def self.find(step_id) | ||
| 4 | + Delayed::Job.where(:handler => "--- !ruby/struct:CommunityTrackPlugin::ActivationJob \nstep_id: #{step_id}\n") | ||
| 5 | + end | ||
| 6 | + | ||
| 7 | + def perform | ||
| 8 | + step = CommunityTrackPlugin::Step.find(step_id) | ||
| 9 | + step.publish | ||
| 10 | + end | ||
| 11 | + | ||
| 12 | +end |
plugins/community_track/lib/community_track_plugin/step.rb
| @@ -104,17 +104,4 @@ class CommunityTrackPlugin::Step < Folder | @@ -104,17 +104,4 @@ class CommunityTrackPlugin::Step < Folder | ||
| 104 | tools.find(:first, :conditions => {:type => tool_type }) | 104 | tools.find(:first, :conditions => {:type => tool_type }) |
| 105 | end | 105 | end |
| 106 | 106 | ||
| 107 | - class CommunityTrackPlugin::ActivationJob < Struct.new(:step_id) | ||
| 108 | - | ||
| 109 | - def self.find(step_id) | ||
| 110 | - Delayed::Job.where(:handler => "--- !ruby/struct:CommunityTrackPlugin::ActivationJob \nstep_id: #{step_id}\n") | ||
| 111 | - end | ||
| 112 | - | ||
| 113 | - def perform | ||
| 114 | - step = CommunityTrackPlugin::Step.find(step_id) | ||
| 115 | - step.publish | ||
| 116 | - end | ||
| 117 | - | ||
| 118 | - end | ||
| 119 | - | ||
| 120 | end | 107 | end |
plugins/community_track/test/unit/community_track_plugin/activation_job_test.rb
0 → 100644
| @@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
| 1 | +require File.dirname(__FILE__) + '/../../test_helper' | ||
| 2 | + | ||
| 3 | +class ActivationJobTest < ActiveSupport::TestCase | ||
| 4 | + | ||
| 5 | + def setup | ||
| 6 | + @profile = fast_create(Community) | ||
| 7 | + @track = create_track('track', @profile) | ||
| 8 | + @step = CommunityTrackPlugin::Step.new(:name => 'Step', :body => 'body', :profile => @profile, :parent => @track, :published => false, :end_date => Date.today, :start_date => Date.today) | ||
| 9 | + Delayed::Job.destroy_all | ||
| 10 | + end | ||
| 11 | + | ||
| 12 | + should 'return delayed job created with a specific step_id' do | ||
| 13 | + step_id = 0 | ||
| 14 | + CommunityTrackPlugin::ActivationJob.new(step_id) | ||
| 15 | + assert CommunityTrackPlugin::ActivationJob.find(step_id) | ||
| 16 | + end | ||
| 17 | + | ||
| 18 | + should 'change publish to true on perform delayed job in a active step' do | ||
| 19 | + @step.start_date = Date.today | ||
| 20 | + @step.end_date = Date.today + 2.days | ||
| 21 | + @step.published = false | ||
| 22 | + @step.save! | ||
| 23 | + CommunityTrackPlugin::ActivationJob.new(@step.id).perform | ||
| 24 | + @step.reload | ||
| 25 | + assert @step.published | ||
| 26 | + end | ||
| 27 | + | ||
| 28 | + should 'reschedule delayed job after change publish to true' do | ||
| 29 | + @step.start_date = Date.today | ||
| 30 | + @step.end_date = Date.today + 2.days | ||
| 31 | + @step.published = false | ||
| 32 | + @step.save! | ||
| 33 | + assert_equal @step.start_date, Delayed::Job.first.run_at.to_date | ||
| 34 | + process_delayed_job_queue | ||
| 35 | + assert_equal @step.end_date + 1.day, Delayed::Job.first.run_at.to_date | ||
| 36 | + end | ||
| 37 | + | ||
| 38 | +end |
plugins/community_track/test/unit/community_track_plugin/step_test.rb
| @@ -140,26 +140,6 @@ class StepTest < ActiveSupport::TestCase | @@ -140,26 +140,6 @@ class StepTest < ActiveSupport::TestCase | ||
| 140 | assert_equal @step.end_date + 1.day, Delayed::Job.first.run_at.to_date | 140 | assert_equal @step.end_date + 1.day, Delayed::Job.first.run_at.to_date |
| 141 | end | 141 | end |
| 142 | 142 | ||
| 143 | - should 'change publish to true on perform delayed job in a active step' do | ||
| 144 | - @step.start_date = Date.today | ||
| 145 | - @step.end_date = Date.today + 2.days | ||
| 146 | - @step.published = false | ||
| 147 | - @step.save! | ||
| 148 | - CommunityTrackPlugin::ActivationJob.new(@step.id).perform | ||
| 149 | - @step.reload | ||
| 150 | - assert @step.published | ||
| 151 | - end | ||
| 152 | - | ||
| 153 | - should 'reschedule delayed job after change publish to true' do | ||
| 154 | - @step.start_date = Date.today | ||
| 155 | - @step.end_date = Date.today + 2.days | ||
| 156 | - @step.published = false | ||
| 157 | - @step.save! | ||
| 158 | - assert_equal @step.start_date, Delayed::Job.first.run_at.to_date | ||
| 159 | - process_delayed_job_queue | ||
| 160 | - assert_equal @step.end_date + 1.day, Delayed::Job.first.run_at.to_date | ||
| 161 | - end | ||
| 162 | - | ||
| 163 | should 'do not schedule delayed job if save but do not modify date fields and published status' do | 143 | should 'do not schedule delayed job if save but do not modify date fields and published status' do |
| 164 | @step.start_date = Date.today | 144 | @step.start_date = Date.today |
| 165 | @step.end_date = Date.today | 145 | @step.end_date = Date.today |