Sha256: db3e6ee789d0e49af6636d3c3fd7862ba70486b0bf9937b9b4857ef77ee9ae33

Contents?: true

Size: 628 Bytes

Versions: 1

Compression:

Stored size: 628 Bytes

Contents

require 'spec_helper'

describe Virtus::Attribute::EmbeddedValue::FromOpenStruct, '#coerce' do
  subject { object.coerce(value) }

  let(:primitive) { OpenStruct }

  let(:object) do
    described_class.new(:name, :primitive => primitive)
  end

  context 'when the value is a primitive instance' do
    let(:value) { primitive.new }

    it { should be(value) }
  end

  context 'when the value is a hash' do
    let(:value)    { Hash[:foo => 'bar'] }
    let(:instance) { mock('instance') }

    before do
      primitive.should_receive(:new).with(value).and_return(instance)
    end

    it { should be(instance) }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
virtus-0.5.0 spec/unit/virtus/attribute/embedded_value/from_open_struct/coerce_spec.rb