Sha256: e54a001abd8b93ef63228db951ee0e5e42eda6286aeacc3fe5fdba7577ad1334

Contents?: true

Size: 1.95 KB

Versions: 35

Compression:

Stored size: 1.95 KB

Contents

require "spec_helper"

describe Mongoid::Extensions::BigDecimal do

  let(:number) do
    BigDecimal.new("123456.789")
  end

  describe ".demongoize" do

    context "when the the value is a string" do

      it "returns a big decimal" do
        expect(BigDecimal.demongoize(number.to_s)).to eq(number)
      end
    end

    context "when the value is nil" do

      it "returns nil" do
        expect(BigDecimal.demongoize(nil)).to be_nil
      end
    end

    context "when the value is a float" do

      let(:float) do
        123456.789
      end

      it "returns a float" do
        expect(BigDecimal.demongoize(float)).to eq(float)
      end
    end

    context "when the value is an integer" do

      let(:integer) do
        123456
      end

      it "returns an integer" do
        expect(BigDecimal.demongoize(integer)).to eq(integer)
      end
    end

    context "when the value is NaN" do

      let(:nan) do
        "NaN"
      end

      let(:demongoized) do
        BigDecimal.demongoize(nan)
      end

      it "returns a big decimal" do
        expect(demongoized).to be_a(BigDecimal)
      end

      it "is a NaN big decimal" do
        expect(demongoized).to be_nan
      end
    end
  end

  describe ".mongoize" do

    context "when the value is a big decimal" do

      it "returns a string" do
        expect(BigDecimal.mongoize(number)).to eq(number.to_s)
      end
    end

    context "when the value is nil" do

      it "returns nil" do
        expect(BigDecimal.mongoize(nil)).to be_nil
      end
    end

    context "when the value is an integer" do

      it "returns a string" do
        expect(BigDecimal.mongoize(123456)).to eq("123456")
      end
    end

    context "when the value is a float" do

      it "returns a string" do
        expect(BigDecimal.mongoize(123456.789)).to eq("123456.789")
      end
    end
  end

  describe "#mongoize" do

    it "returns a string" do
      expect(number.mongoize).to eq(number.to_s)
    end
  end
end

Version data entries

35 entries across 32 versions & 6 rubygems

Version Path
mongoid-5.4.1 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.4.0 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.2.1 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.2.0 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.2.0.rc0 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.6 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.5 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.4 spec/mongoid/extensions/big_decimal_spec.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/mongoid-4.0.2/spec/mongoid/extensions/big_decimal_spec.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.3 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.2 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.1 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.1.0 spec/mongoid/extensions/big_decimal_spec.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/mongoid-5.0.1/spec/mongoid/extensions/big_decimal_spec.rb
tdiary-4.2.1 vendor/bundle/ruby/2.3.0/gems/mongoid-5.0.2/spec/mongoid/extensions/big_decimal_spec.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/mongoid-5.0.2/spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.0.2 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.0.1 spec/mongoid/extensions/big_decimal_spec.rb
mongoid-5.0.0 spec/mongoid/extensions/big_decimal_spec.rb