Sha256: 80dc2d6ca2431bdeeb6e992ee19e083e50e338395b86ea1fef5e993498c557e2

Contents?: true

Size: 1.85 KB

Versions: 20

Compression:

Stored size: 1.85 KB

Contents

require 'spec_helper'

module Ddr
  module Models
    RSpec.describe HasStructMetadata, type: :model, structural_metadata: true do

      let(:item) { Item.new(id: 'test_2') }

      describe "#structure" do
        context "no existing structural metadata" do
          it "should return nil" do
            expect(item.structure).to eq(nil)
          end
        end
        context "existing structural metadata" do
          before { item.attached_files[Ddr::Models::File::STRUCT_METADATA].content = simple_structure }
          it "should return the structural metadata" do
            expect(item.structure.to_xml).to be_equivalent_to(simple_structure)
          end
        end
      end

      describe "#build_default_structure" do
        let(:components) { [ Component.new(id: 'test_5', identifier: [ 'abc002' ]),
                             Component.new(id: 'test_6', identifier: [ 'abc001' ]),
                             Component.new(id: 'test_7', identifier: [ 'abc003' ])
                           ] }
        let(:expected) { FactoryGirl.build(:simple_structure) }
        before { allow(item).to receive(:find_children) { simple_structure_query_response } }
        it "should build the appropriate structural metadata" do
          results = item.build_default_structure
          expect(results).to be_equivalent_to(expected)
        end
      end

      describe "indexing" do
        let(:expected_json) { multiple_struct_maps_structure_to_json }
        before { item.attached_files[Ddr::Models::File::STRUCT_METADATA].content = multiple_struct_maps_structure }
        it "should index the JSON representation of the structure" do
          indexing = item.to_solr
          expect(indexing.keys).to include(Ddr::Index::Fields::STRUCT_MAPS)
          expect(indexing[Ddr::Index::Fields::STRUCT_MAPS]).to eq(expected_json)
        end
      end

    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
ddr-models-3.0.8 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.7 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.6 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.5 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.4 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.3 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.2 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.1 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc6 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc5 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc4 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc3 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc2 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.rc1 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.beta.22 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.beta.21 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.beta.20 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.beta.18 spec/models/has_struct_metadata_spec.rb
ddr-models-3.0.0.beta.17 spec/models/has_struct_metadata_spec.rb