Sha256: 4ae3b7270f799de9ce9ad175cbee9f2c539c4af1903ef803b30814baae893b96

Contents?: true

Size: 1.79 KB

Versions: 11

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'

describe ActiveFedora::Model do
  before(:all) do
    module ModelIntegrationSpec
      class Basic < ActiveFedora::Base
        has_metadata name: "properties", type: ActiveFedora::SimpleDatastream do |m|
          m.field "foo", :string
          m.field "bar", :string
          m.field "baz", :string
        end

        Deprecation.silence(ActiveFedora::Attributes) do
          has_attributes :foo, :bar, :baz, datastream: 'properties', multiple: true
        end

        def to_solr(doc = {})
          doc = super
          doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable)] = doc[ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)]
          doc
        end
      end
    end
  end

  after(:all) do
    Object.send(:remove_const, :ModelIntegrationSpec)
  end

  describe "with multiple objects" do
    let!(:instance1) { ModelIntegrationSpec::Basic.create!(foo: ['Beta'], bar: ['Chips']) }
    let!(:instance2) { ModelIntegrationSpec::Basic.create!(foo: ['Alpha'], bar: ['Peanuts']) }
    let!(:instance3) { ModelIntegrationSpec::Basic.create!(foo: ['Sigma'], bar: ['Peanuts']) }

    subject { ModelIntegrationSpec::Basic.where(bar: 'Peanuts') }

    it "maps" do
      expect(subject.map(&:id)).to eq [instance2.id, instance3.id]
    end

    it "collects" do
      expect(subject.collect(&:id)).to eq [instance2.id, instance3.id]
    end

    it "has each" do
      t = double
      expect(t).to receive(:foo).twice
      subject.each { t.foo }
    end

    it "has all?" do
      expect(subject.all? { |t| t.foo == ['Alpha'] }).to be false
      expect(subject.all? { |t| t.bar == ['Peanuts'] }).to be true
    end

    it "has include?" do
      expect(subject.include?(instance1)).to be false
      expect(subject.include?(instance2)).to be true
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
active-fedora-9.7.3 spec/integration/relation_delegation_spec.rb
active-fedora-9.7.2 spec/integration/relation_delegation_spec.rb
active-fedora-9.9.1 spec/integration/relation_delegation_spec.rb
active-fedora-9.9.0 spec/integration/relation_delegation_spec.rb
active-fedora-9.8.2 spec/integration/relation_delegation_spec.rb
active-fedora-9.8.1 spec/integration/relation_delegation_spec.rb
active-fedora-9.8.0 spec/integration/relation_delegation_spec.rb
active-fedora-9.7.1 spec/integration/relation_delegation_spec.rb
active-fedora-9.7.0 spec/integration/relation_delegation_spec.rb
active-fedora-9.6.2 spec/integration/relation_delegation_spec.rb
active-fedora-9.6.1 spec/integration/relation_delegation_spec.rb