Sha256: dc310df403e74f34d9d1c67e178a489fb366cd3fe3f5fb99794288c7d7924404

Contents?: true

Size: 1.26 KB

Versions: 8

Compression:

Stored size: 1.26 KB

Contents

#
# Specifying rufus-scheduler
#
# Wed Apr 17 06:00:59 JST 2013
#

require 'spec_helper'


describe Rufus::Scheduler do

  before :each do
    @scheduler = Rufus::Scheduler.new
  end
  after :each do
    @scheduler.shutdown
  end

  describe '#in' do

    it 'adds a job' do

      @scheduler.in(3600) do
      end

      @scheduler.jobs.size.should == 1
      @scheduler.jobs.first.class.should == Rufus::Scheduler::InJob
    end

    it 'triggers a job' do

      a = false

      @scheduler.in(0.4) do
        a = true
      end

      sleep 0.9

      a.should == true
    end

    it 'removes the job after execution' do

      @scheduler.in(0.4) do
      end

      sleep 0.700

      @scheduler.jobs.size.should == 0
    end
  end

  describe '#schedule_in' do

    it 'accepts a number' do

      job = @scheduler.schedule_in(3600) {}

      job.original.should == 3600
    end

    it 'accepts a duration string' do

      job = @scheduler.schedule_in('1h') {}

      job.original.should == '1h'
      job.time.should >= job.scheduled_at + 3509
      job.time.should <= job.scheduled_at + 3601
    end

    it 'accepts an ActiveSupport .from_now thinggy'
      #
      #   schedule_in(2.days.from_now)
      #
      # that'd simply require "in" to be a bit like "at"...
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rufus-scheduler-3.0.7 spec/schedule_in_spec.rb
rufus-scheduler-3.0.6 spec/schedule_in_spec.rb
rufus-scheduler-3.0.5 spec/schedule_in_spec.rb
rufus-scheduler-3.0.4 spec/schedule_in_spec.rb
rufus-scheduler-3.0.3 spec/schedule_in_spec.rb
rufus-scheduler-3.0.2 spec/schedule_in_spec.rb
rufus-scheduler-3.0.1 spec/schedule_in_spec.rb
rufus-scheduler-3.0.0 spec/schedule_in_spec.rb