Sha256: 089995503e9ca1b60975fbbe0f923f7e8e508c285c3565b5d57f0f69f1b1ef5f

Contents?: true

Size: 880 Bytes

Versions: 2

Compression:

Stored size: 880 Bytes

Contents

require 'spec_helper'

describe Coercer::TimeCoercions, '.to_time' do
  subject { object.to_time(value) }

  let(:object)  { coercer.new }
  let(:coercer) { Class.new(Coercer::Object) { include Coercer::TimeCoercions } }
  let(:value)   { mock('value') }

  context 'when the value responds to #to_time' do
    before do
      object.extend Coercer::TimeCoercions

      value.should_receive(:to_time).and_return(Time.utc(2011, 1, 1))
    end

    it { should be_instance_of(Time) }

    it { should eql(Time.utc(2011, 1, 1)) }
  end

  context 'when the value does not respond to #to_time' do
    before do
      object.extend Coercer::TimeCoercions

      # use a string that Time.parse can handle
      value.should_receive(:to_s).and_return('Sat Jan 01 00:00:00 UTC 2011')
    end

    it { should be_instance_of(Time) }

    it { should eql(Time.utc(2011, 1, 1)) }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
coercible-0.0.2 spec/unit/coercible/coercer/time_coercions/to_time_spec.rb
coercible-0.0.1 spec/unit/coercible/coercer/time_coercions/to_time_spec.rb