Sha256: c9d02afe5216953ad7707866371a6286b7b9683e1b367e8b33844191aee2368f

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

require 'minitest_helper'

describe WorkingCalendar::WeekDay do

  let(:moment) { Timing::NaturalTimeLanguage.parse '2018-11-04T14:27:00-06:00' }

  describe 'Included moments' do

    it 'Single hours range' do
      week_day = WorkingCalendar::WeekDay.new :sunday, '09:00' => '18:00'
      assert week_day.include?(moment)
    end

    it 'Multiple hours ranges' do
      week_day = WorkingCalendar::WeekDay.new :sunday, '09:00' => '13:00',
                                                       '14:00' => '18:00'
      assert week_day.include?(moment)

    end

  end

  describe 'Not included moments' do

    describe 'Single hours range' do

      it 'Same week day and different time' do
        week_day = WorkingCalendar::WeekDay.new :sunday, '17:00' => '20:00'
        refute week_day.include?(moment)
      end

      it 'Valid time and different week day' do
        week_day = WorkingCalendar::WeekDay.new :monday, '09:00' => '20:00'
        refute week_day.include?(moment)
      end

    end

    describe 'Multiple hours ranges' do

      it 'Same week day and different time' do
        week_day = WorkingCalendar::WeekDay.new :sunday, '09:00' => '14:00',
                                                         '15:00' => '18:00'
        refute week_day.include?(moment)
      end
      
      it 'Valid time and different week day' do
        week_day = WorkingCalendar::WeekDay.new :monday, '09:00' => '13:00',
                                                         '14:00' => '18:00'
        refute week_day.include?(moment)
      end

    end

  end

  it 'To string' do
    assert_equal 'Tuesday {09:00:00=>18:00:00}', WorkingCalendar::WeekDay.new(:tuesday, '09:00' => '18:00').to_s
  end

  it 'Invalid day name' do
    error = proc { WorkingCalendar::WeekDay.new :xyz, '09:00' => '18:00' }.must_raise ArgumentError
    assert_equal 'Invalid day name xyz', error.message
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
working_calendar-0.1.0 spec/week_day_spec.rb