Sha256: 0221b631ff59a5431a3d005f98d8d9647c364f6578f55b484063cf3e0c2004e5

Contents?: true

Size: 1.28 KB

Versions: 7

Compression:

Stored size: 1.28 KB

Contents

require "spec_helper"

describe DataMapper::Property::ParseDate do
  subject { property }
  let(:property) { Article.properties[:created_at] }
  let(:datetime) { DateTime.parse("2011-08-21T18:02:52.249Z") }

  describe "#dump" do
    subject { property.dump value }
    let(:value) { datetime }

    it { should eq("__type" => "Date", "iso" => datetime.utc.iso8601(3)) }

    context "when value is nil" do
      let(:value) { nil }

      it { should be_nil }
    end

    context "when value is Date" do
      let(:value) { Date.parse "2011-08-21" }

      it { should eq("__type" => "Date", "iso" => value.to_datetime.utc.iso8601(3)) }
    end
  end

  describe "#load" do
    subject { property.load value }
    let(:value) { {"__type" => "Date", "iso" => datetime.utc.iso8601(3)} }

    it { should eq(datetime) }

    context "when value is in string" do
      let(:value) { "2011-08-21T18:02:52.249Z" }

      it { should eq(datetime) }
    end

    context "when value is nil" do
      let(:value) { nil }

      it { should be_nil }
    end
  end

  describe "#valid?" do
    subject { property.valid? datetime }

    it { should be_true }
  end

  describe "#typecast" do
    subject { property.typecast value }

    let(:value) { "2011-08-21T18:02:52.249Z" }

    it { should be_a(DateTime) }
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dm-parse-0.3.20 spec/parse_date_spec.rb
dm-parse-0.3.19 spec/parse_date_spec.rb
dm-parse-0.3.18 spec/parse_date_spec.rb
dm-parse-0.3.17 spec/parse_date_spec.rb
dm-parse-0.3.16 spec/parse_date_spec.rb
dm-parse-0.3.15 spec/parse_date_spec.rb
dm-parse-0.3.14 spec/parse_date_spec.rb