Sha256: dcacdd42538a703bac62d08abe279c75aebd3c0bf223a3030c474a92b3454950

Contents?: true

Size: 1.53 KB

Versions: 6

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

describe OData4::Properties::String do
  let(:subject) { OData4::Properties::String.new('Stringy', 'This is an example') }

  it { expect(subject).to respond_to(:is_unicode?) }
  it { expect(subject).to respond_to(:has_default_value?) }
  it { expect(subject).to respond_to(:default_value) }

  it { expect(subject.type).to eq('Edm.String') }
  it { expect(subject.value).to eq('This is an example')}

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

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

  describe '#is_unicode?' do
    let(:not_unicode) { OData4::Properties::String.new('Stringy', 'This is an example', unicode: false) }

    it { expect(subject.is_unicode?).to eq(true) }
    it { expect(not_unicode.is_unicode?).to eq(false) }

    it { expect(subject.value.encoding).to eq(Encoding::UTF_8) }
    it { expect(not_unicode.value.encoding).to eq(Encoding::ASCII) }
  end

  describe 'when #allows_nil? is false' do
    let(:subject) { OData4::Properties::String.new('Stringy', 'This is an example', allows_nil: false) }

    it { expect {subject.value = nil}.to raise_error(ArgumentError) }
    it { expect {subject.value = 'Test'}.not_to raise_error }
  end

  describe 'with default_value' do
    let(:subject) { OData4::Properties::String.new('Stringy', nil, default_value: 'Sample Text') }

    it { expect(subject.has_default_value?).to eq(true) }
    it { expect(subject.default_value).to eq('Sample Text') }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

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