Sha256: bd48cf0c5ce27fb1df9c0866b2138806ab2282a06aad7843f4f242f5dba78496

Contents?: true

Size: 1.59 KB

Versions: 5

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe Praxis::MediaType do
  let(:owner_resource) { instance_double(Person, id: 100, name: Faker::Name.first_name, href: '/') }
  let(:manager_resource) { instance_double(Person, id: 101, name: Faker::Name.first_name, href: '/') }
  let(:custodian_resource) { instance_double(Person, id: 102, name: Faker::Name.first_name, href: '/') }
  let(:residents_summary_resource) do
    instance_double(Person::CollectionSummary, href: '/people', size: 2)
  end

  let(:resource) do
    double('address',
           id: 1,
           name: 'Home',
           owner: owner_resource,
           manager: manager_resource,
           custodian: custodian_resource,
           residents_summary: residents_summary_resource,
           fields: { id: true, name: true })
  end

  subject(:address) { Address.new(resource) }

  context 'attributes' do
    its(:id)    { should eq(1) }
    its(:name)  { should eq('Home') }
    its(:owner) { should be_instance_of(Person) }
  end

  context 'accessor methods' do
    subject(:address_klass) { address.class }

    context '#identifier' do
      it 'should be a kind of Praxis::MediaTypeIdentifier' do
        expect(subject.identifier).to be_kind_of(Praxis::MediaTypeIdentifier)
      end
    end

    its(:description) { should be_kind_of(String) }
  end

  context 'rendering' do
    subject(:output) { address.render }

    its([:id])    { should eq(address.id) }
    its([:name])  { should eq(address.name) }
    its([:owner]) { should eq(Person.dump(owner_resource)) }
    its([:fields]) { should eq(address.fields.dump) }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
praxis-2.0.0 spec/praxis/media_type_spec.rb
praxis-2.0.pre.40 spec/praxis/media_type_spec.rb
praxis-2.0.pre.39 spec/praxis/media_type_spec.rb
praxis-2.0.pre.38 spec/praxis/media_type_spec.rb
praxis-2.0.pre.37 spec/praxis/media_type_spec.rb