Sha256: 19cef4a59aea2d0f2a060cde9641cd439620a5d37714deb9276a08359690994c

Contents?: true

Size: 1.54 KB

Versions: 33

Compression:

Stored size: 1.54 KB

Contents

RSpec.describe MetasploitDataModels::AutomaticExploitation::MatchSet, type: :model do
  describe "database" do
    describe "foreign_keys" do
      it { is_expected.to have_db_column(:workspace_id).of_type(:integer) }
      it { is_expected.to have_db_column(:user_id).of_type(:integer) }
    end

    describe "indices" do
      it { is_expected.to have_db_index(:user_id) }
      it { is_expected.to have_db_index(:workspace_id) }
    end
  end

  describe "associations" do
    it { is_expected.to have_many(:matches).class_name('MetasploitDataModels::AutomaticExploitation::Match') }
    it { is_expected.to have_many(:matches).inverse_of(:match_set) }
    it { is_expected.to have_many(:runs).class_name('MetasploitDataModels::AutomaticExploitation::Run') }
    it { is_expected.to have_many(:runs).inverse_of(:match_set) }
    it { is_expected.to belong_to(:user).class_name('Mdm::User') }
    it { is_expected.to belong_to(:user).inverse_of(:automatic_exploitation_match_sets) }
    it { is_expected.to belong_to(:workspace).class_name('Mdm::Workspace') }
    it { is_expected.to belong_to(:workspace).inverse_of(:automatic_exploitation_match_sets) }
  end

  describe "validations" do
    subject(:match_set){ FactoryBot.build(:automatic_exploitation_match_set)}

    describe "missing user" do
      before(:example) do
        match_set.user = nil
      end

      it{ is_expected.to be_invalid }
    end

    describe "missing workspace" do
      before(:example) do
        match_set.workspace = nil
      end

      it{ is_expected.to be_invalid }
    end

  end

end

Version data entries

33 entries across 33 versions & 2 rubygems

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