metasploit_data_models 0.24.4 → 0.24.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -3
  3. data/.travis.yml +3 -6
  4. data/CONTRIBUTING.md +52 -10
  5. data/Gemfile +8 -1
  6. data/Rakefile +0 -23
  7. data/app/models/mdm/api_key.rb +1 -41
  8. data/app/models/mdm/client.rb +1 -41
  9. data/app/models/mdm/cred.rb +19 -107
  10. data/app/models/mdm/event.rb +1 -48
  11. data/app/models/mdm/exploit_attempt.rb +16 -65
  12. data/app/models/mdm/exploited_host.rb +1 -28
  13. data/app/models/mdm/host_detail.rb +1 -45
  14. data/app/models/mdm/host_tag.rb +8 -6
  15. data/app/models/mdm/listener.rb +1 -53
  16. data/app/models/mdm/macro.rb +0 -42
  17. data/app/models/mdm/mod_ref.rb +0 -21
  18. data/app/models/mdm/module/action.rb +0 -15
  19. data/app/models/mdm/module/arch.rb +0 -10
  20. data/app/models/mdm/module/author.rb +0 -16
  21. data/app/models/mdm/module/mixin.rb +0 -13
  22. data/app/models/mdm/module/platform.rb +0 -11
  23. data/app/models/mdm/module/target.rb +0 -18
  24. data/app/models/mdm/nexpose_console.rb +4 -82
  25. data/app/models/mdm/profile.rb +0 -36
  26. data/app/models/mdm/route.rb +5 -17
  27. data/app/models/mdm/session_event.rb +1 -33
  28. data/app/models/mdm/tag.rb +10 -49
  29. data/app/models/mdm/task.rb +45 -94
  30. data/app/models/mdm/task_cred.rb +0 -29
  31. data/app/models/mdm/task_host.rb +0 -25
  32. data/app/models/mdm/task_service.rb +0 -25
  33. data/app/models/mdm/task_session.rb +0 -25
  34. data/app/models/mdm/user.rb +6 -188
  35. data/app/models/mdm/vuln_attempt.rb +12 -37
  36. data/app/models/mdm/vuln_detail.rb +5 -139
  37. data/app/models/mdm/vuln_ref.rb +1 -4
  38. data/app/models/mdm/web_form.rb +1 -35
  39. data/app/models/mdm/web_page.rb +1 -70
  40. data/app/models/mdm/web_site.rb +1 -51
  41. data/app/models/mdm/wmap_request.rb +0 -85
  42. data/app/models/mdm/wmap_target.rb +0 -40
  43. data/app/models/mdm/workspace.rb +14 -152
  44. data/app/models/metasploit_data_models/automatic_exploitation.rb +16 -0
  45. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +24 -19
  46. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +5 -33
  47. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +4 -22
  48. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +3 -13
  49. data/app/models/metasploit_data_models/ip_address/v4/segmented.rb +1 -1
  50. data/app/models/metasploit_data_models/module_run.rb +1 -1
  51. data/app/models/metasploit_data_models/search/visitor/where.rb +1 -1
  52. data/app/validators/ip_format_validator.rb +0 -4
  53. data/app/validators/parameters_validator.rb +0 -12
  54. data/app/validators/password_is_strong_validator.rb +1 -10
  55. data/lib/mdm/host/operating_system_normalization.rb +10 -7
  56. data/lib/metasploit_data_models.rb +0 -4
  57. data/lib/metasploit_data_models/engine.rb +0 -2
  58. data/lib/metasploit_data_models/serialized_prefs.rb +0 -6
  59. data/lib/metasploit_data_models/version.rb +10 -24
  60. data/lib/tasks/yard.rake +33 -0
  61. data/metasploit_data_models.gemspec +2 -9
  62. data/spec/app/models/mdm/api_key_spec.rb +3 -1
  63. data/spec/app/models/mdm/client_spec.rb +11 -9
  64. data/spec/app/models/mdm/cred_spec.rb +54 -42
  65. data/spec/app/models/mdm/event_spec.rb +23 -21
  66. data/spec/app/models/mdm/exploit_attempt_spec.rb +21 -19
  67. data/spec/app/models/mdm/exploited_host_spec.rb +13 -11
  68. data/spec/app/models/mdm/host_detail_spec.rb +17 -15
  69. data/spec/app/models/mdm/host_spec.rb +260 -261
  70. data/spec/app/models/mdm/host_tag_spec.rb +8 -6
  71. data/spec/app/models/mdm/listener_spec.rb +32 -30
  72. data/spec/app/models/mdm/loot_spec.rb +23 -21
  73. data/spec/app/models/mdm/macro_spec.rb +3 -1
  74. data/spec/app/models/mdm/mod_ref_spec.rb +3 -1
  75. data/spec/app/models/mdm/module/action_spec.rb +12 -10
  76. data/spec/app/models/mdm/module/arch_spec.rb +12 -10
  77. data/spec/app/models/mdm/module/author_spec.rb +17 -22
  78. data/spec/app/models/mdm/module/detail_spec.rb +75 -184
  79. data/spec/app/models/mdm/module/mixin_spec.rb +12 -10
  80. data/spec/app/models/mdm/module/platform_spec.rb +12 -10
  81. data/spec/app/models/mdm/module/ref_spec.rb +12 -10
  82. data/spec/app/models/mdm/module/target_spec.rb +15 -13
  83. data/spec/app/models/mdm/nexpose_console_spec.rb +37 -35
  84. data/spec/app/models/mdm/note_spec.rb +25 -23
  85. data/spec/app/models/mdm/profile_spec.rb +3 -1
  86. data/spec/app/models/mdm/ref_spec.rb +12 -10
  87. data/spec/app/models/mdm/route_spec.rb +8 -6
  88. data/spec/app/models/mdm/service_spec.rb +40 -38
  89. data/spec/app/models/mdm/session_event_spec.rb +12 -10
  90. data/spec/app/models/mdm/session_spec.rb +15 -13
  91. data/spec/app/models/mdm/tag_spec.rb +29 -29
  92. data/spec/app/models/mdm/task_cred_spec.rb +11 -9
  93. data/spec/app/models/mdm/task_host_spec.rb +11 -9
  94. data/spec/app/models/mdm/task_service_spec.rb +11 -9
  95. data/spec/app/models/mdm/task_session_spec.rb +9 -7
  96. data/spec/app/models/mdm/task_spec.rb +29 -27
  97. data/spec/app/models/mdm/user_spec.rb +19 -17
  98. data/spec/app/models/mdm/vuln_attempt_spec.rb +16 -14
  99. data/spec/app/models/mdm/vuln_detail_spec.rb +28 -26
  100. data/spec/app/models/mdm/vuln_ref_spec.rb +10 -8
  101. data/spec/app/models/mdm/vuln_spec.rb +26 -24
  102. data/spec/app/models/mdm/web_form_spec.rb +13 -11
  103. data/spec/app/models/mdm/web_page_spec.rb +21 -19
  104. data/spec/app/models/mdm/web_site_spec.rb +23 -21
  105. data/spec/app/models/mdm/web_vuln_spec.rb +65 -63
  106. data/spec/app/models/mdm/wmap_request_spec.rb +3 -1
  107. data/spec/app/models/mdm/wmap_target_spec.rb +3 -1
  108. data/spec/app/models/mdm/workspace_spec.rb +100 -97
  109. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +5 -3
  110. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +15 -13
  111. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +3 -1
  112. data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +3 -1
  113. data/spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb +12 -10
  114. data/spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb +6 -4
  115. data/spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb +23 -21
  116. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb +11 -9
  117. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb +23 -21
  118. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb +6 -4
  119. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb +15 -22
  120. data/spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb +6 -4
  121. data/spec/app/models/metasploit_data_models/module_run_spec.rb +3 -1
  122. data/spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb +20 -18
  123. data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +8 -6
  124. data/spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb +10 -8
  125. data/spec/app/models/metasploit_data_models/search/operation/range_spec.rb +10 -8
  126. data/spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb +4 -2
  127. data/spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb +10 -8
  128. data/spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb +8 -6
  129. data/spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb +11 -9
  130. data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +7 -5
  131. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +19 -17
  132. data/spec/app/models/metasploit_data_models/search/visitor/method_spec.rb +7 -5
  133. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +23 -61
  134. data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +10 -8
  135. data/spec/app/validators/parameters_validator_spec.rb +29 -29
  136. data/spec/app/validators/password_is_strong_validator_spec.rb +46 -54
  137. data/spec/dummy/db/structure.sql +3403 -0
  138. data/spec/factories/mdm/module/details.rb +1 -1
  139. data/spec/lib/base64_serializer_spec.rb +19 -19
  140. data/spec/lib/metasploit_data_models/ip_address/cidr_spec.rb +12 -18
  141. data/spec/lib/metasploit_data_models/ip_address/range_spec.rb +6 -4
  142. data/spec/lib/metasploit_data_models/match/child_spec.rb +4 -2
  143. data/spec/lib/metasploit_data_models/match/parent_spec.rb +6 -4
  144. data/spec/lib/metasploit_data_models/version_spec.rb +141 -3
  145. data/spec/spec_helper.rb +12 -86
  146. data/spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb +2 -2
  147. data/spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb +4 -4
  148. data/spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb +2 -2
  149. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb +5 -5
  150. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb +5 -5
  151. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb +3 -3
  152. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb +6 -7
  153. metadata +9 -67
  154. data/CHANGELOG.md +0 -6
  155. data/RELEASING.md +0 -88
  156. data/UPGRADING.md +0 -1
  157. data/lib/metasploit_data_models/automatic_exploitation.rb +0 -25
  158. data/spec/lib/metasploit_data_models_spec.rb +0 -4
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Operator::IPAddress, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Operator::IPAddress do
2
4
  subject(:operator) {
3
5
  described_class.new
4
6
  }
@@ -12,6 +14,6 @@ RSpec.describe MetasploitDataModels::Search::Operator::IPAddress, type: :model d
12
14
  nil
13
15
  }
14
16
 
15
- it { is_expected.to be_a MetasploitDataModels::Search::Operation::IPAddress }
17
+ it { should be_a MetasploitDataModels::Search::Operation::IPAddress }
16
18
  end
17
19
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Operator::Multitext do
2
4
  subject(:multitext_operator) {
3
5
  described_class.new(
4
6
  attributes
@@ -10,8 +12,8 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
10
12
  }
11
13
 
12
14
  context 'validations' do
13
- it { is_expected.to ensure_length_of(:operator_names).is_at_least(2) }
14
- it { is_expected.to validate_presence_of :name }
15
+ it { should ensure_length_of(:operator_names).is_at_least(2) }
16
+ it { should validate_presence_of :name }
15
17
  end
16
18
 
17
19
  context '#children' do
@@ -43,7 +45,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
43
45
  nil
44
46
  }
45
47
 
46
- it { is_expected.to eq([]) }
48
+ it { should == [] }
47
49
  end
48
50
 
49
51
  context 'with empty String' do
@@ -51,7 +53,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
51
53
  ''
52
54
  }
53
55
 
54
- it { is_expected.to eq([]) }
56
+ it { should == [] }
55
57
  end
56
58
 
57
59
  context 'without quotes' do
@@ -80,7 +82,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
80
82
  }
81
83
 
82
84
  it 'generates a single union for quoted words as a single argument' do
83
- expect(children.length).to eq(1)
85
+ expect(children).to have(1).items
84
86
 
85
87
  child = children.first
86
88
 
@@ -99,7 +101,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
99
101
  }
100
102
 
101
103
  context 'default' do
102
- it { is_expected.to be_nil }
104
+ it { should be_nil }
103
105
  end
104
106
 
105
107
  context 'setter' do
@@ -121,7 +123,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Multitext, type: :model d
121
123
  }
122
124
 
123
125
  context 'default' do
124
- it { is_expected.to eq([]) }
126
+ it { should == [] }
125
127
  end
126
128
  end
127
129
 
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Operator::Port::List do
2
4
  subject(:port_list_operator) {
3
5
  described_class.new(
4
6
  klass: klass
@@ -15,7 +17,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model
15
17
  described_class::SEPARATOR
16
18
  }
17
19
 
18
- it { is_expected.to eq(',') }
20
+ it { should == ',' }
19
21
  end
20
22
  end
21
23
 
@@ -25,7 +27,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model
25
27
  }
26
28
 
27
29
  context 'default' do
28
- it { is_expected.to eq(:port) }
30
+ it { should == :port }
29
31
  end
30
32
 
31
33
  context 'setter' do
@@ -85,7 +87,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model
85
87
  operation_range.value
86
88
  }
87
89
 
88
- it { is_expected.to be_a Range }
90
+ it { should be_a Range }
89
91
  end
90
92
  end
91
93
  end
@@ -119,7 +121,7 @@ RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model
119
121
  operation_range.value
120
122
  }
121
123
 
122
- it { is_expected.to be_an Integer }
124
+ it { should be_an Integer }
123
125
  end
124
126
  end
125
127
  end
@@ -157,6 +159,6 @@ RSpec.describe MetasploitDataModels::Search::Operator::Port::List, type: :model
157
159
  described_class.operator_name
158
160
  }
159
161
 
160
- it { is_expected.to eq('port_list') }
162
+ it { should == 'port_list' }
161
163
  end
162
164
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Attribute, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Attribute do
2
4
  subject(:visitor) do
3
5
  described_class.new
4
6
  end
@@ -20,7 +22,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Attribute, type: :model do
20
22
  node_class = options.fetch(:node_class)
21
23
 
22
24
  context "with #{node_class}" do
23
- it { is_expected.to be_a Arel::Attributes::Attribute }
25
+ it { should be_a Arel::Attributes::Attribute }
24
26
 
25
27
  context '#name' do
26
28
  subject(:name) do
@@ -28,7 +30,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Attribute, type: :model do
28
30
  end
29
31
 
30
32
  it "should be #{node_class}#attribute" do
31
- expect(name).to eq(node.attribute)
33
+ name.should == node.attribute
32
34
  end
33
35
  end
34
36
 
@@ -38,7 +40,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Attribute, type: :model do
38
40
  end
39
41
 
40
42
  it "should be Class#arel_table for #{node_class}#klass" do
41
- expect(relation).to eq(node.klass.arel_table)
43
+ relation.should == node.klass.arel_table
42
44
  end
43
45
  end
44
46
  end
@@ -56,19 +58,19 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Attribute, type: :model do
56
58
  end
57
59
 
58
60
  it 'should visit Metasploit::Model::Search::Operator::Association#source_operator' do
59
- expect(visitor).to receive(:visit).with(node).and_call_original
60
- expect(visitor).to receive(:visit).with(source_operator)
61
+ visitor.should_receive(:visit).with(node).and_call_original
62
+ visitor.should_receive(:visit).with(source_operator)
61
63
 
62
64
  visit
63
65
  end
64
66
 
65
67
  it 'should return visit of Metasploit::Model::Search::Operator::Association#source_operator' do
66
- expect(visitor).to receive(:visit).with(node).and_call_original
68
+ visitor.should_receive(:visit).with(node).and_call_original
67
69
 
68
70
  visited = double('Source Operator Visited')
69
- allow(visitor).to receive(:visit).with(source_operator).and_return(visited)
71
+ visitor.stub(:visit).with(source_operator).and_return(visited)
70
72
 
71
- expect(visit).to eq(visited)
73
+ visit.should == visited
72
74
  end
73
75
  end
74
76
 
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Includes, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Includes do
2
4
  subject(:visitor) do
3
5
  described_class.new
4
6
  end
@@ -120,7 +122,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Includes, type: :model do
120
122
  Metasploit::Model::Search::Operator::Attribute.new
121
123
  end
122
124
 
123
- it { is_expected.to eq([]) }
125
+ it { should == [] }
124
126
  end
125
127
 
126
128
  context 'with MetasploitDataModels::Search::Operator::Port::List' do
@@ -128,7 +130,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Includes, type: :model do
128
130
  MetasploitDataModels::Search::Operator::Port::List.new
129
131
  end
130
132
 
131
- it { is_expected.to eq([]) }
133
+ it { should == [] }
132
134
  end
133
135
 
134
136
  context 'with Metasploit::Model::Search::Query#tree' do
@@ -158,7 +160,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Includes, type: :model do
158
160
  "name:\"#{name}\""
159
161
  end
160
162
 
161
- it { is_expected.to be_empty }
163
+ it { should be_empty }
162
164
  end
163
165
 
164
166
  context 'with services.name' do
@@ -170,7 +172,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Includes, type: :model do
170
172
  "services.name:\"#{name}\""
171
173
  end
172
174
 
173
- it { is_expected.to include :services }
175
+ it { should include :services }
174
176
  end
175
177
  end
176
178
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Joins do
2
4
  subject(:visitor) do
3
5
  described_class.new
4
6
  end
@@ -31,10 +33,10 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
31
33
 
32
34
  it 'should visit each child' do
33
35
  # needed for call to visit subject
34
- expect(visitor).to receive(:visit).with(node).and_call_original
36
+ visitor.should_receive(:visit).with(node).and_call_original
35
37
 
36
38
  children.each do |child|
37
- expect(visitor).to receive(:visit).with(child).and_return([])
39
+ visitor.should_receive(:visit).with(child).and_return([])
38
40
  end
39
41
 
40
42
  visit
@@ -43,15 +45,15 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
43
45
  it 'should return Array of all child visits' do
44
46
  child_visits = []
45
47
 
46
- expect(visitor).to receive(:visit).with(node).and_call_original
48
+ visitor.should_receive(:visit).with(node).and_call_original
47
49
 
48
50
  children.each_with_index do |child, i|
49
51
  child_visit = ["Visited Child #{i}"]
50
- allow(visitor).to receive(:visit).with(child).and_return(child_visit)
52
+ visitor.stub(:visit).with(child).and_return(child_visit)
51
53
  child_visits.concat(child_visit)
52
54
  end
53
55
 
54
- expect(visit).to eq(child_visits)
56
+ visit.should == child_visits
55
57
  end
56
58
  end
57
59
  end
@@ -79,7 +81,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
79
81
  }
80
82
  end
81
83
 
82
- it { is_expected.to eq([]) }
84
+ it { should == [] }
83
85
  end
84
86
 
85
87
  context 'with association and attribute' do
@@ -115,7 +117,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
115
117
  ]
116
118
  end
117
119
 
118
- it { is_expected.to eq([]) }
120
+ it { should == [] }
119
121
  end
120
122
 
121
123
  context 'with the same child join for all' do
@@ -143,7 +145,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
143
145
  end
144
146
 
145
147
  it 'should include association' do
146
- expect(visit).to include association
148
+ visit.should include association
147
149
  end
148
150
  end
149
151
 
@@ -213,13 +215,13 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
213
215
 
214
216
  it 'should include common associations' do
215
217
  common_associations.each do |association|
216
- expect(visit).to include(association)
218
+ visit.should include(association)
217
219
  end
218
220
  end
219
221
 
220
222
  it 'should not include disjoint associations' do
221
223
  disjoint_associations.each do |association|
222
- expect(visit).not_to include(association)
224
+ visit.should_not include(association)
223
225
  end
224
226
  end
225
227
  end
@@ -229,7 +231,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
229
231
  []
230
232
  end
231
233
 
232
- it { is_expected.to eq([]) }
234
+ it { should == [] }
233
235
  end
234
236
  end
235
237
  end
@@ -239,7 +241,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
239
241
  []
240
242
  end
241
243
 
242
- it { is_expected.to eq([]) }
244
+ it { should == [] }
243
245
  end
244
246
  end
245
247
  end
@@ -337,7 +339,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
337
339
  Metasploit::Model::Search::Operator::Attribute.new
338
340
  end
339
341
 
340
- it { is_expected.to eq([]) }
342
+ it { should == [] }
341
343
  end
342
344
 
343
345
  context 'with MetasploitDataModels::Search::Operator::Port::List' do
@@ -345,7 +347,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
345
347
  MetasploitDataModels::Search::Operator::Port::List.new
346
348
  end
347
349
 
348
- it { is_expected.to eq([]) }
350
+ it { should == [] }
349
351
  end
350
352
 
351
353
  context 'with Metasploit::Model::Search::Query#tree' do
@@ -375,7 +377,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
375
377
  "name:\"#{name}\""
376
378
  end
377
379
 
378
- it { is_expected.to be_empty }
380
+ it { should be_empty }
379
381
  end
380
382
 
381
383
  context 'with services.name' do
@@ -387,7 +389,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Joins, type: :model do
387
389
  "services.name:\"#{name}\""
388
390
  end
389
391
 
390
- it { is_expected.to include :services }
392
+ it { should include :services }
391
393
  end
392
394
  end
393
395
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Method, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Method do
2
4
  subject(:visitor) do
3
5
  described_class.new
4
6
  end
@@ -19,7 +21,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Method, type: :model do
19
21
  Metasploit::Model::Search::Group::Intersection
20
22
  end
21
23
 
22
- it { is_expected.to eq(:and) }
24
+ it { should == :and }
23
25
  end
24
26
 
25
27
  context 'with Metasploit::Model::Search::Operation::Group::Intersection' do
@@ -27,7 +29,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Method, type: :model do
27
29
  Metasploit::Model::Search::Operation::Group::Intersection
28
30
  end
29
31
 
30
- it { is_expected.to eq(:and) }
32
+ it { should == :and }
31
33
  end
32
34
 
33
35
  context 'with Metasploit::Model::Search::Group::Union' do
@@ -35,7 +37,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Method, type: :model do
35
37
  Metasploit::Model::Search::Group::Union
36
38
  end
37
39
 
38
- it { is_expected.to eq(:or) }
40
+ it { should == :or }
39
41
  end
40
42
 
41
43
  context 'with Metasploit::Model::Search::Operation::Group::Union' do
@@ -43,7 +45,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Method, type: :model do
43
45
  Metasploit::Model::Search::Operation::Group::Union
44
46
  end
45
47
 
46
- it { is_expected.to eq(:or) }
48
+ it { should == :or }
47
49
  end
48
50
  end
49
51
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Relation do
2
4
  subject(:visitor) do
3
5
  described_class.new(
4
6
  :query => query
@@ -29,7 +31,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
29
31
 
30
32
  context 'validations' do
31
33
  context 'query' do
32
- it { is_expected.to validate_presence_of(:query) }
34
+ it { should validate_presence_of(:query) }
33
35
 
34
36
  context 'valid' do
35
37
  let(:error) do
@@ -46,7 +48,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
46
48
  end
47
49
 
48
50
  before(:each) do
49
- allow(query).to receive(:valid?).and_return(query)
51
+ query.stub(:valid? => query)
50
52
 
51
53
  visitor.valid?
52
54
  end
@@ -57,7 +59,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
57
59
  end
58
60
 
59
61
  it 'should not record error' do
60
- expect(errors).not_to include(error)
62
+ errors.should_not include(error)
61
63
  end
62
64
  end
63
65
 
@@ -67,7 +69,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
67
69
  end
68
70
 
69
71
  it 'should record error' do
70
- expect(errors).not_to include(error)
72
+ errors.should_not include(error)
71
73
  end
72
74
  end
73
75
  end
@@ -78,7 +80,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
78
80
  end
79
81
 
80
82
  it 'should not record error' do
81
- expect(errors).not_to include(error)
83
+ errors.should_not include(error)
82
84
  end
83
85
  end
84
86
  end
@@ -96,16 +98,16 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
96
98
  end
97
99
 
98
100
  it 'should visit Metasploit::Model::Search::Query#tree' do
99
- expect(includes_visitor).to receive(:visit).with(query.tree)
101
+ includes_visitor.should_receive(:visit).with(query.tree)
100
102
 
101
103
  visit
102
104
  end
103
105
 
104
106
  it 'should pass visited to ActiveRecord::Relation#includes' do
105
107
  visited = double('Visited')
106
- allow(includes_visitor).to receive(:visit).with(query.tree).and_return(visited)
108
+ includes_visitor.stub(:visit).with(query.tree).and_return(visited)
107
109
 
108
- expect_any_instance_of(ActiveRecord::Relation).to receive(:includes).with(visited).and_return(query.klass.scoped)
110
+ ActiveRecord::Relation.any_instance.should_receive(:includes).with(visited).and_return(query.klass.scoped)
109
111
 
110
112
  visit
111
113
  end
@@ -117,16 +119,16 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
117
119
  end
118
120
 
119
121
  it 'should visit Metasploit::Model::Search::Query#tree' do
120
- expect(joins_visitor).to receive(:visit).with(query.tree)
122
+ joins_visitor.should_receive(:visit).with(query.tree)
121
123
 
122
124
  visit
123
125
  end
124
126
 
125
127
  it 'should pass visited to ActiveRecord::Relation#joins' do
126
128
  visited = double('Visited')
127
- allow(joins_visitor).to receive(:visit).with(query.tree).and_return(visited)
129
+ joins_visitor.stub(:visit).with(query.tree).and_return(visited)
128
130
 
129
- expect_any_instance_of(ActiveRecord::Relation).to receive(:joins).with(visited).and_return(query.klass.scoped)
131
+ ActiveRecord::Relation.any_instance.should_receive(:joins).with(visited).and_return(query.klass.scoped)
130
132
 
131
133
  visit
132
134
  end
@@ -138,16 +140,16 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
138
140
  end
139
141
 
140
142
  it 'should visit Metasploit::Model::Search::Query#tree' do
141
- expect(where_visitor).to receive(:visit).with(query.tree)
143
+ where_visitor.should_receive(:visit).with(query.tree)
142
144
 
143
145
  visit
144
146
  end
145
147
 
146
148
  it 'should pass visited to ActiveRecord::Relation#includes' do
147
149
  visited = double('Visited')
148
- allow(where_visitor).to receive(:visit).with(query.tree).and_return(visited)
150
+ where_visitor.stub(:visit).with(query.tree).and_return(visited)
149
151
 
150
- expect_any_instance_of(ActiveRecord::Relation).to receive(:where).with(visited).and_return(query.klass.scoped)
152
+ ActiveRecord::Relation.any_instance.should_receive(:where).with(visited).and_return(query.klass.scoped)
151
153
 
152
154
  visit
153
155
  end
@@ -868,29 +870,9 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
868
870
  visitor.visitor_by_relation_method
869
871
  end
870
872
 
871
- context 'joins' do
872
- subject(:joins) {
873
- visitor_by_relation_method[:joins]
874
- }
875
-
876
- it { is_expected.to be_a MetasploitDataModels::Search::Visitor::Joins }
877
- end
878
-
879
- context 'includes' do
880
- subject(:includes) {
881
- visitor_by_relation_method[:includes]
882
- }
883
-
884
- it { is_expected.to be_a MetasploitDataModels::Search::Visitor::Includes }
885
- end
886
-
887
- context 'where' do
888
- subject(:where) {
889
- visitor_by_relation_method[:where]
890
- }
891
-
892
- it { is_expected.to be_a MetasploitDataModels::Search::Visitor::Where }
893
- end
873
+ its([:joins]) { should be_a MetasploitDataModels::Search::Visitor::Joins }
874
+ its([:includes]) { should be_a MetasploitDataModels::Search::Visitor::Includes }
875
+ its([:where]) { should be_a MetasploitDataModels::Search::Visitor::Where }
894
876
  end
895
877
 
896
878
  context 'visitor_class_by_relation_method' do
@@ -898,28 +880,8 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
898
880
  described_class.visitor_class_by_relation_method
899
881
  end
900
882
 
901
- context 'joins' do
902
- subject(:joins) {
903
- visitor_class_by_relation_method[:joins]
904
- }
905
-
906
- it { is_expected.to eq(MetasploitDataModels::Search::Visitor::Joins) }
907
- end
908
-
909
- context 'includes' do
910
- subject(:includes) {
911
- visitor_class_by_relation_method[:includes]
912
- }
913
-
914
- it { is_expected.to eq(MetasploitDataModels::Search::Visitor::Includes) }
915
- end
916
-
917
- context 'where' do
918
- subject(:where) {
919
- visitor_class_by_relation_method[:where]
920
- }
921
-
922
- it { is_expected.to eq(MetasploitDataModels::Search::Visitor::Where) }
923
- end
883
+ its([:joins]) { should == MetasploitDataModels::Search::Visitor::Joins }
884
+ its([:includes]) { should == MetasploitDataModels::Search::Visitor::Includes }
885
+ its([:where]) { should == MetasploitDataModels::Search::Visitor::Where }
924
886
  end
925
887
  end