Sha256: c692d692d128d7c05dc03f89a906ea473459febbcce5a08d5877c060d254438e

Contents?: true

Size: 1004 Bytes

Versions: 13

Compression:

Stored size: 1004 Bytes

Contents

require 'spec_helper'

describe Virtus::Coercion::Hash, '.to_time' do
  subject { object.to_time(hash) }

  let(:object) { described_class }

  context 'when time segments are missing' do
    let(:time_now) { Time.local(2011, 1, 1) }
    let(:hash)     { {}                     }

    before do
      Time.stub!(:now).and_return(time_now)  # freeze time
    end

    it { should be_instance_of(Time) }

    it 'uses the Time now to populate the segments' do
      should eql(time_now)
    end
  end

  context 'when time segments are integers' do
    let(:hash) { { :year => 2011, :month => 1, :day => 1, :hour => 1, :min => 1, :sec => 1 } }

    it { should be_instance_of(Time) }

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

  context 'when time segments are strings' do
    let(:hash) { { :year => '2011', :month => '1', :day => '1', :hour => '1', :min => '1', :sec => '1' } }

    it { should be_instance_of(Time) }

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

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
virtus-0.5.5 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.5.4 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.5.3 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
fragrant-0.0.5 vendor/bundle/ruby/1.9.1/gems/virtus-0.5.2/spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.5.2 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.5.1 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.5.0 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.4.2 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.4.1 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.4.0 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.3.0 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.2.0 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb
virtus-0.1.0 spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb