Sha256: 80391745b488cf87f355db3307105f8fa11aeb1b1a1d43b415aa44dbd265fcd5

Contents?: true

Size: 1.19 KB

Versions: 18

Compression:

Stored size: 1.19 KB

Contents

RSpec.describe MetasploitDataModels::Match::Child do
  let(:extending_class) {
    # capture as local for Class.new block scope
    described_class = self.described_class

    Class.new(Metasploit::Model::Base) {
      extend described_class

      #
      # Attributes
      #

      # @!attribute value
      #   @return [String]
      attr_accessor :value
    }
  }

  before(:each) do
    stub_const('ExtendingClass', extending_class)
    stub_const('ExtendingClass::REGEXP', /\d+-\d+/)
  end

  context '#match' do
    subject(:match) {
      extending_class.match(formatted_value)
    }

    context 'formatted value' do
      context 'with matching' do
        let(:formatted_value) {
          '1-2'
        }

        it 'returns instance of extending class' do
          expect(match).to be_an extending_class
        end

        context '#value' do
          subject(:value) {
            match.value
          }

          it 'is set to formatted value' do
            expect(value).to eq(formatted_value)
          end
        end
      end

      context 'without matching' do
        let(:formatted_value) do
          '1,2-3'
        end

        it { is_expected.to be_nil }
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
metasploit_data_models-1.2.10 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.9 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.8 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.7 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.6 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.5 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.4 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.3 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.2 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-0.24.4 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.1 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.2.0 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.1.0 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.0.1 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-1.0.0 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-0.24.3 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-0.24.2 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-0.24.1.pre.rspec.pre.3.pre.1 spec/lib/metasploit_data_models/match/child_spec.rb