Sha256: 2049f88cd6435615e16fac681bb49815bff19760ff7c2c5ca5a2f0398e306827

Contents?: true

Size: 1.51 KB

Versions: 22

Compression:

Stored size: 1.51 KB

Contents

require 'spec_helper'

describe Acfs::Model::Attributes::DateTime do
  let(:model) { Class.new.tap { |c| c.send :include, Acfs::Model }}

  describe 'cast' do
    it 'should return same object, if obj is already of DateTime class' do
      date_time = DateTime.now
      retval = Acfs::Model::Attributes::DateTime.cast(date_time)
      expect(retval).to be == date_time
    end

    it 'should return parsed object, if obj is of Time class' do
      time = Time.now
      retval = Acfs::Model::Attributes::DateTime.cast(time)
      expect(retval).to be == DateTime.iso8601(time.iso8601)
    end

    it 'should return parsed object, if obj is of Date class' do
      date = Date.today
      retval = Acfs::Model::Attributes::DateTime.cast(date)
      expect(retval).to be == DateTime.iso8601(date.iso8601)
    end

    it 'should return parsed object, if obj is of String class in ISO-8601 format' do
      date_time_string = DateTime.now.iso8601
      retval = Acfs::Model::Attributes::DateTime.cast(date_time_string)
      expect(retval).to be == DateTime.iso8601(date_time_string)
    end

    it 'should raise an error if obj is of String class not in valid ISO-8601 format' do
      malformed_string = 'qwe123'
      expect {
        Acfs::Model::Attributes::DateTime.cast(malformed_string)
      }.to raise_error ArgumentError
    end

    it 'should raise an error if obj is of wrong class (Fixnum)' do
      fixnum = 12
      expect {
        Acfs::Model::Attributes::DateTime.cast(fixnum)
      }.to raise_error TypeError
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
acfs-0.22.2.b193 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.2 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.1.b192 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.1 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.0.b191 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.0.b190 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.0 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.1.b189 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.1.rc1.b188 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.1 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.0.rc1.b187 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.1.rc1 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.0.rc1 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.22.0.rc1.b186 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.0.b185 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.20.0.dev.b184 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.21.0 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.20.0.dev.b183 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.20.0.dev.b182 spec/acfs/model/attributes/date_time_spec.rb
acfs-0.20.0.dev.b181 spec/acfs/model/attributes/date_time_spec.rb