Sha256: 88a2174926f0296f1baf29d7828d17d7665103f8c8de9e6aba648bcddc41ec56

Contents?: true

Size: 1.17 KB

Versions: 8

Compression:

Stored size: 1.17 KB

Contents

RSpec.describe Metasploit::Model::Base do
  subject(:base_class) do
    Class.new(described_class)
  end

  it_should_behave_like 'Metasploit::Model::Translation',
                        metasploit_model_ancestor: Metasploit::Model::Base

  context '#initialize' do
    it 'should use public_send to set attributes' do
      attribute = :attribute
      value = double('Value')
      expect_any_instance_of(base_class).to receive(:public_send).with("#{attribute}=", value)

      base_class.new(attribute => value)
    end
  end

  context '#valid!' do
    subject(:valid!) do
      base_instance.valid!
    end

    let(:base_instance) do
      base_class.new
    end

    before(:each) do
      allow(base_instance).to receive(:valid?).and_return(valid)
    end

    context 'with valid' do
      let(:valid) do
        true
      end

      it 'should not raise error' do
        expect {
          valid!
        }.to_not raise_error
      end
    end

    context 'without valid' do
      let(:valid) do
        false
      end

      it 'should raise Metasploit::Model::Invalid' do
        expect {
          valid!
        }.to raise_error(Metasploit::Model::Invalid)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
metasploit-model-1.0.2 spec/lib/metasploit/model/base_spec.rb
metasploit-model-1.0.1 spec/lib/metasploit/model/base_spec.rb
metasploit-model-1.0.0 spec/lib/metasploit/model/base_spec.rb
metasploit-model-0.30.2 spec/lib/metasploit/model/base_spec.rb
metasploit-model-0.30.2-java spec/lib/metasploit/model/base_spec.rb
metasploit-model-0.30.1 spec/lib/metasploit/model/base_spec.rb
metasploit-model-0.30.1-java spec/lib/metasploit/model/base_spec.rb
metasploit-model-0.30.1.pre.rspec.pre.3.pre.1 spec/lib/metasploit/model/base_spec.rb