Sha256: 8e52f0ec2b69593c54ede03deffb751c9ed36eda7f55927d2678a5cc695c35c2

Contents?: true

Size: 834 Bytes

Versions: 2

Compression:

Stored size: 834 Bytes

Contents

FactoryBot.define do
  factory :mdm_service, :class => Mdm::Service do
    #
    # Associations
    #
    association :host, :factory => :mdm_host

    #
    # Attributes
    #
    name { generate :mdm_service_name }
    port { generate :port }
    proto { generate :mdm_service_proto }
    state 'open'

    factory :web_service do
      proto 'tcp'
      name { FactoryBot.generate(:web_service_name) }
    end
  end

  sequence(:mdm_service_name) { |n|
    "mdm_service_name#{n}"
  }

  sequence :mdm_service_proto, Mdm::Service::PROTOS.cycle

  port_bits = 16
  port_limit = 1 << port_bits

  sequence :port do |n|
    n % port_limit
  end

  web_service_names = ['http', 'https']
  web_service_name_count = web_service_names.length

  sequence :web_service_name do |n|
    web_service_names[n % web_service_name_count]
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
metasploit_data_models-3.0.1 spec/factories/mdm/services.rb
metasploit_data_models-3.0.0 spec/factories/mdm/services.rb