Sha256: ba9906033e8774f9ff19437fed4e5db6bdf7adda38b6fda837dab86e564a8fca

Contents?: true

Size: 1.87 KB

Versions: 6

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

describe OData4::Properties::Boolean do
  let(:truthy1) { OData4::Properties::Boolean.new('Truthy', 'true') }
  let(:truthy2) { OData4::Properties::Boolean.new('Truthy', '1') }
  let(:falsey1) { OData4::Properties::Boolean.new('Falsey', 'false') }
  let(:falsey2) { OData4::Properties::Boolean.new('Falsey', '0') }
  let(:nily) { OData4::Properties::Boolean.new('Nily', nil) }

  it { expect(truthy1.type).to eq('Edm.Boolean') }
  it { expect(truthy1.value).to eq(true) }
  it { expect(truthy2.value).to eq(true) }

  it { expect(falsey1.value).to eq(false) }
  it { expect(falsey2.value).to eq(false) }

  it { expect(nily.value).to eq(nil) }

  it { expect {truthy1.value = 'bad'}.to raise_error(ArgumentError) }

  describe 'setting to false' do
    let(:subject) { OData4::Properties::Boolean.new('Truthy', 'true') }

    it { expect(subject.value).to eq(true) }

    it { expect(lambda {
      subject.value = false
      subject.value
    }.call).to eq(false) }

    it { expect(lambda {
      subject.value = 'false'
      subject.value
    }.call).to eq(false) }

    it { expect(lambda {
      subject.value = '0'
      subject.value
    }.call).to eq(false) }
  end

  describe 'setting to true' do
    let(:subject) { OData4::Properties::Boolean.new('Falsey', 'false') }

    it { expect(subject.value).to eq(false) }

    it { expect(lambda {
      subject.value = true
      subject.value
    }.call).to eq(true) }

    it { expect(lambda {
      subject.value = 'true'
      subject.value
    }.call).to eq(true) }

    it { expect(lambda {
      subject.value = '1'
      subject.value
    }.call).to eq(true) }
  end

  describe 'setting to null' do
    let(:subject) { OData4::Properties::Boolean.new('Truthy', 'true') }

    it { expect(subject.allows_nil?).to eq(true) }
    it { expect(lambda {
      subject.value = nil
      subject.value
    }.call).to eq(nil) }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
odata4-0.9.1 spec/odata4/properties/boolean_spec.rb
odata4-0.9.0 spec/odata4/properties/boolean_spec.rb
odata4-0.8.2 spec/odata4/properties/boolean_spec.rb
odata4-0.8.1 spec/odata4/properties/boolean_spec.rb
odata4-0.8.0 spec/odata4/properties/boolean_spec.rb
odata4-0.7.0 spec/odata4/properties/boolean_spec.rb