Sha256: fb2d51a532b94e8af77fb4301e39fd0178f9583fd55395d21f2f7d124ed79772

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

require 'spec_helper'

describe Hydra::Works::FileSet do
  let(:file_set) { described_class.new }

  describe 'Related objects' do
    let(:object1) { Hydra::PCDM::Object.new }

    before do
      file_set.related_objects = [object1]
    end

    it 'persists' do
      expect(file_set.related_objects).to eq [object1]
    end
  end

  describe '#files' do
    let(:file1) { file_set.files.build }
    let(:file2) { file_set.files.build }

    before do
      file_set.save!
      file1.content = "I'm a file"
      file2.content = 'I am too'
      file_set.save!
    end

    subject { described_class.find(file_set.id).files }

    it { is_expected.to eq [file1, file2] }
  end

  describe '#in_works' do
    subject { file_set.in_works }
    let(:work) { Hydra::Works::Work.create }
    before do
      work.ordered_members << file_set
      work.save
    end

    it { is_expected.to eq [work] }
  end

  describe '#destroy' do
    let(:work) { Hydra::Works::Work.create }
    before do
      work.ordered_members << file_set
      work.save
    end

    it "Removes the proxy, the list_node and the FileSet" do
      expect { file_set.destroy }.to change { ActiveFedora::Aggregation::Proxy.count }.by(-1)
        .and change { work.reload.ordered_member_proxies.to_a.length }.by(-1)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hydra-works-0.7.1 spec/hydra/works/models/file_set_spec.rb
hydra-works-0.7.0 spec/hydra/works/models/file_set_spec.rb