Sha256: ceb94dcd39142d796961e0afde35a9fc661575beb95d350d53a2aa4298ba4e8d

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

require 'sitehub/collection'

class SiteHub
  describe Collection do
    describe '#valid?' do
      it 'must be overiden and raises an exception by default' do
        expect { subject.valid? }.to raise_exception 'implement me'
      end
    end

    describe '#resolve' do
      it 'must be overiden and raises an exception by default' do
        expect { subject.resolve }.to raise_exception 'implement me'
      end
    end

    describe '.inherited' do
      describe '#add' do
        context 'duplicate ids added' do
          subject do
            inheritor = Class.new(described_class) do
              def add(id, value, *_args)
                self[id] = value
              end
            end

            inheritor.new
          end
          it 'raises an error' do
            duplicate = Struct.new(:id).new(1)
            subject.add(duplicate.id, duplicate)
            expected_message = described_class::ClassMethods::UNIQUE_LABELS_MSG
            expect { subject.add(duplicate.id, duplicate) }
              .to raise_exception described_class::DuplicateVersionException, expected_message
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sitehub-0.4.10 spec/sitehub/collection_spec.rb
sitehub-0.5.0.alpha3 spec/sitehub/collection_spec.rb
sitehub-0.5.0.alpha2 spec/sitehub/collection_spec.rb
sitehub-0.4.9 spec/sitehub/collection_spec.rb
sitehub-0.4.8 spec/sitehub/collection_spec.rb
sitehub-0.4.7 spec/sitehub/collection_spec.rb
sitehub-0.4.6 spec/sitehub/collection_spec.rb
sitehub-0.4.3 spec/sitehub/collection_spec.rb