Sha256: dab021162536bbae8f81db2fcebb4819ba56f9861e7b3d0f7ab4d17da0d013f1

Contents?: true

Size: 1.19 KB

Versions: 51

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(:example) 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

51 entries across 51 versions & 2 rubygems

Version Path
metasploit_data_models-6.0.6 spec/lib/metasploit_data_models/match/child_spec.rb
wg-metasploit_data_models-4.1.4.02 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.5 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.4 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.3 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.2 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.1 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-6.0.0 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.6 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.5 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.4 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.3 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.2 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.1 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-5.0.0 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-4.1.4 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-4.1.3 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-4.1.2 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-4.1.1 spec/lib/metasploit_data_models/match/child_spec.rb
metasploit_data_models-4.1.0 spec/lib/metasploit_data_models/match/child_spec.rb