Skip to content

Commit a0a19e5

Browse files
committed
Spec classes, constants and methods from lib/msf/db.rb
MSP-11466 Method specces only check that the method is defined as they only need to catch deleted methods during the reorganization.
1 parent 692e535 commit a0a19e5

File tree

5 files changed

+280
-1
lines changed

5 files changed

+280
-1
lines changed

spec/lib/msf/database_event_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
RSpec.describe Msf::DatabaseEvent do
2+
subject(:base_instance) {
3+
base_class.new
4+
}
5+
6+
let(:base_class) {
7+
described_class = self.described_class
8+
9+
Class.new do
10+
include described_class
11+
end
12+
}
13+
14+
it { is_expected.to respond_to :on_db_client }
15+
it { is_expected.to respond_to :on_db_host }
16+
it { is_expected.to respond_to :on_db_host_state }
17+
it { is_expected.to respond_to :on_db_ref }
18+
it { is_expected.to respond_to :on_db_service }
19+
it { is_expected.to respond_to :on_db_service_state }
20+
it { is_expected.to respond_to :on_db_vuln }
21+
22+
end

spec/lib/msf/db_import_error_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
RSpec.describe Msf::DBImportError do
2+
it { is_expected.to be_a RuntimeError }
3+
end

spec/lib/msf/db_manager_spec.rb

Lines changed: 193 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,157 @@ def add_rails_engine_migration_paths
5151
end
5252
end
5353

54+
it { is_expected.to respond_to :add_workspace }
5455
it { is_expected.to respond_to :after_establish_connection }
56+
it { is_expected.to respond_to :check }
5557
it { is_expected.to respond_to :connect }
5658
it { is_expected.to respond_to :connection_established? }
5759
it { is_expected.to respond_to :create_db }
60+
it { is_expected.to respond_to :create_request }
61+
it { is_expected.to respond_to :create_target }
62+
it { is_expected.to respond_to :creds }
63+
it { is_expected.to respond_to :default_workspace }
64+
it { is_expected.to respond_to :dehex }
65+
it { is_expected.to respond_to :del_host }
66+
it { is_expected.to respond_to :del_service }
67+
it { is_expected.to respond_to :delete_all_targets }
5868
it { is_expected.to respond_to :disconnect }
5969
it { is_expected.to respond_to :driver }
6070
it { is_expected.to respond_to :drivers }
6171
it { is_expected.to respond_to :drivers= }
72+
it { is_expected.to respond_to :each_cred }
73+
it { is_expected.to respond_to :each_distinct_target }
74+
it { is_expected.to respond_to :each_exploited_host }
75+
it { is_expected.to respond_to :each_host }
76+
it { is_expected.to respond_to :each_loot }
77+
it { is_expected.to respond_to :each_note }
78+
it { is_expected.to respond_to :each_request }
79+
it { is_expected.to respond_to :each_request_target }
80+
it { is_expected.to respond_to :each_request_target_with_body }
81+
it { is_expected.to respond_to :each_request_target_with_headers }
82+
it { is_expected.to respond_to :each_request_target_with_path }
83+
it { is_expected.to respond_to :each_request_target_with_query }
84+
it { is_expected.to respond_to :each_service }
85+
it { is_expected.to respond_to :each_target }
86+
it { is_expected.to respond_to :each_vuln }
87+
it { is_expected.to respond_to :emit }
6288
it { is_expected.to respond_to :error }
89+
it { is_expected.to respond_to :events }
90+
it { is_expected.to respond_to :exploited_hosts }
91+
it { is_expected.to respond_to :find_or_create_client }
92+
it { is_expected.to respond_to :find_or_create_cred }
93+
it { is_expected.to respond_to :find_or_create_host }
94+
it { is_expected.to respond_to :find_or_create_loot }
95+
it { is_expected.to respond_to :find_or_create_note }
96+
it { is_expected.to respond_to :find_or_create_ref }
97+
it { is_expected.to respond_to :find_or_create_report }
98+
it { is_expected.to respond_to :find_or_create_service }
99+
it { is_expected.to respond_to :find_or_create_task }
100+
it { is_expected.to respond_to :find_or_create_vuln }
101+
it { is_expected.to respond_to :find_qualys_asset_ports }
102+
it { is_expected.to respond_to :find_qualys_asset_vuln_refs }
103+
it { is_expected.to respond_to :find_qualys_asset_vulns }
104+
it { is_expected.to respond_to :find_vuln_by_details }
105+
it { is_expected.to respond_to :find_vuln_by_refs }
106+
it { is_expected.to respond_to :find_workspace }
107+
it { is_expected.to respond_to :get_client }
108+
it { is_expected.to respond_to :get_host }
109+
it { is_expected.to respond_to :get_ref }
110+
it { is_expected.to respond_to :get_service }
111+
it { is_expected.to respond_to :get_session }
112+
it { is_expected.to respond_to :get_target }
113+
it { is_expected.to respond_to :get_vuln }
114+
it { is_expected.to respond_to :has_host? }
115+
it { is_expected.to respond_to :has_ref? }
116+
it { is_expected.to respond_to :has_vuln? }
117+
it { is_expected.to respond_to :hosts }
118+
it { is_expected.to respond_to :import }
119+
it { is_expected.to respond_to :import_acunetix_noko_stream }
120+
it { is_expected.to respond_to :import_acunetix_xml }
121+
it { is_expected.to respond_to :import_amap_log }
122+
it { is_expected.to respond_to :import_amap_log_file }
123+
it { is_expected.to respond_to :import_amap_mlog }
124+
it { is_expected.to respond_to :import_appscan_noko_stream }
125+
it { is_expected.to respond_to :import_appscan_xml }
126+
it { is_expected.to respond_to :import_burp_session_noko_stream }
127+
it { is_expected.to respond_to :import_burp_session_xml }
128+
it { is_expected.to respond_to :import_ci_noko_stream }
129+
it { is_expected.to respond_to :import_ci_xml }
130+
it { is_expected.to respond_to :import_file }
131+
it { is_expected.to respond_to :import_filetype_detect }
132+
it { is_expected.to respond_to :import_foundstone_noko_stream }
133+
it { is_expected.to respond_to :import_foundstone_xml }
134+
it { is_expected.to respond_to :import_fusionvm_xml }
135+
it { is_expected.to respond_to :import_ip360_aspl_xml }
136+
it { is_expected.to respond_to :import_ip360_xml_file }
137+
it { is_expected.to respond_to :import_ip360_xml_v3 }
138+
it { is_expected.to respond_to :import_ip_list }
139+
it { is_expected.to respond_to :import_ip_list_file }
140+
it { is_expected.to respond_to :import_libpcap }
141+
it { is_expected.to respond_to :import_libpcap_file }
142+
it { is_expected.to respond_to :import_mbsa_noko_stream }
143+
it { is_expected.to respond_to :import_mbsa_xml }
144+
it { is_expected.to respond_to :import_msf_collateral }
145+
it { is_expected.to respond_to :import_msf_cred_dump }
146+
it { is_expected.to respond_to :import_msf_cred_dump_zip }
147+
it { is_expected.to respond_to :import_msf_file }
148+
it { is_expected.to respond_to :import_msf_pwdump }
149+
it { is_expected.to respond_to :import_msf_zip }
150+
it { is_expected.to respond_to :import_nessus_nbe }
151+
it { is_expected.to respond_to :import_nessus_nbe_file }
152+
it { is_expected.to respond_to :import_nessus_xml }
153+
it { is_expected.to respond_to :import_nessus_xml_file }
154+
it { is_expected.to respond_to :import_nessus_xml_v2 }
155+
it { is_expected.to respond_to :import_netsparker_xml }
156+
it { is_expected.to respond_to :import_netsparker_xml_file }
157+
it { is_expected.to respond_to :import_nexpose_noko_stream }
158+
it { is_expected.to respond_to :import_nexpose_raw_noko_stream }
159+
it { is_expected.to respond_to :import_nexpose_rawxml }
160+
it { is_expected.to respond_to :import_nexpose_rawxml_file }
161+
it { is_expected.to respond_to :import_nexpose_simplexml }
162+
it { is_expected.to respond_to :import_nexpose_simplexml_file }
163+
it { is_expected.to respond_to :import_nikto_xml }
164+
it { is_expected.to respond_to :import_nmap_noko_stream }
165+
it { is_expected.to respond_to :import_nmap_xml }
166+
it { is_expected.to respond_to :import_nmap_xml_file }
167+
it { is_expected.to respond_to :import_openvas_new_xml }
168+
it { is_expected.to respond_to :import_openvas_new_xml_file }
169+
it { is_expected.to respond_to :import_openvas_xml }
170+
it { is_expected.to respond_to :import_outpost24_noko_stream }
171+
it { is_expected.to respond_to :import_outpost24_xml }
172+
it { is_expected.to respond_to :import_qualys_asset_xml }
173+
it { is_expected.to respond_to :import_qualys_scan_xml }
174+
it { is_expected.to respond_to :import_qualys_scan_xml_file }
175+
it { is_expected.to respond_to :import_report }
176+
it { is_expected.to respond_to :import_retina_xml }
177+
it { is_expected.to respond_to :import_retina_xml_file }
178+
it { is_expected.to respond_to :import_spiceworks_csv }
179+
it { is_expected.to respond_to :import_wapiti_xml }
180+
it { is_expected.to respond_to :import_wapiti_xml_file }
63181
it { is_expected.to respond_to :initialize_adapter }
64182
it { is_expected.to respond_to :initialize_database_support }
65183
it { is_expected.to respond_to :initialize_sink }
184+
it { is_expected.to respond_to :inspect_single_packet }
185+
it { is_expected.to respond_to :inspect_single_packet_http }
186+
it { is_expected.to respond_to :ipv46_validator }
187+
it { is_expected.to respond_to :ipv4_validator }
188+
it { is_expected.to respond_to :ipv6_validator }
189+
it { is_expected.to respond_to :loots }
66190
it { is_expected.to respond_to :modules_cached }
67-
it { is_expected.to respond_to :modules_cached= }
68191
it { is_expected.to respond_to :modules_cached }
69192
it { is_expected.to respond_to :modules_cached= }
193+
it { is_expected.to respond_to :modules_cached= }
194+
it { is_expected.to respond_to :msf_import_timestamps }
195+
it { is_expected.to respond_to :netsparker_method_map }
196+
it { is_expected.to respond_to :netsparker_params_map }
197+
it { is_expected.to respond_to :netsparker_pname_map }
198+
it { is_expected.to respond_to :netsparker_vulnerability_map }
199+
it { is_expected.to respond_to :nexpose_host_from_rawxml }
200+
it { is_expected.to respond_to :nexpose_refs_to_struct }
201+
it { is_expected.to respond_to :nils_for_nulls }
202+
it { is_expected.to respond_to :nmap_msf_service_map }
203+
it { is_expected.to respond_to :normalize_host }
204+
it { is_expected.to respond_to :notes }
70205

71206
context '#purge_all_module_details' do
72207
def purge_all_module_details
@@ -207,6 +342,25 @@ def remove_module_details
207342
end
208343
end
209344

345+
it { is_expected.to respond_to :report_artifact }
346+
it { is_expected.to respond_to :report_auth }
347+
it { is_expected.to respond_to :report_auth_info }
348+
it { is_expected.to respond_to :report_client }
349+
it { is_expected.to respond_to :report_cred }
350+
it { is_expected.to respond_to :report_event }
351+
it { is_expected.to respond_to :report_exploit }
352+
it { is_expected.to respond_to :report_exploit_attempt }
353+
it { is_expected.to respond_to :report_exploit_failure }
354+
it { is_expected.to respond_to :report_exploit_success }
355+
it { is_expected.to respond_to :report_host }
356+
it { is_expected.to respond_to :report_host_details }
357+
it { is_expected.to respond_to :report_host_tag }
358+
it { is_expected.to respond_to :report_import_note }
359+
it { is_expected.to respond_to :report_loot }
360+
it { is_expected.to respond_to :report_note }
361+
it { is_expected.to respond_to :report_report }
362+
it { is_expected.to respond_to :report_service }
363+
210364
context '#report_session' do
211365
let(:options) do
212366
{}
@@ -846,6 +1000,24 @@ def remove_module_details
8461000
end
8471001
end
8481002

1003+
it { is_expected.to respond_to :report_session_event }
1004+
it { is_expected.to respond_to :report_session_route }
1005+
it { is_expected.to respond_to :report_session_route_remove }
1006+
it { is_expected.to respond_to :report_task }
1007+
it { is_expected.to respond_to :report_vuln }
1008+
it { is_expected.to respond_to :report_vuln_attempt }
1009+
it { is_expected.to respond_to :report_vuln_details }
1010+
it { is_expected.to respond_to :report_web_form }
1011+
it { is_expected.to respond_to :report_web_page }
1012+
it { is_expected.to respond_to :report_web_site }
1013+
it { is_expected.to respond_to :report_web_vuln }
1014+
it { is_expected.to respond_to :reports }
1015+
it { is_expected.to respond_to :request_distinct_targets }
1016+
it { is_expected.to respond_to :request_sql }
1017+
it { is_expected.to respond_to :requests }
1018+
it { is_expected.to respond_to :rexmlify }
1019+
it { is_expected.to respond_to :rfc3330_reserved }
1020+
8491021
context '#search_modules' do
8501022
subject(:search_modules) do
8511023
db_manager.search_modules(search_string)
@@ -1248,7 +1420,20 @@ def remove_module_details
12481420
end
12491421
end
12501422

1423+
it { is_expected.to respond_to :selected_host }
1424+
it { is_expected.to respond_to :selected_id }
1425+
it { is_expected.to respond_to :selected_port }
1426+
it { is_expected.to respond_to :selected_ssl }
1427+
it { is_expected.to respond_to :selected_wmap_target }
1428+
it { is_expected.to respond_to :service_name_map }
1429+
it { is_expected.to respond_to :services }
12511430
it { is_expected.to respond_to :sink }
1431+
it { is_expected.to respond_to :sql_query }
1432+
it { is_expected.to respond_to :sync }
1433+
it { is_expected.to respond_to :target_requests }
1434+
it { is_expected.to respond_to :targets }
1435+
it { is_expected.to respond_to :tasks }
1436+
it { is_expected.to respond_to :unserialize_object }
12521437

12531438
context '#update_all_module_details' do
12541439
def update_all_module_details
@@ -1414,6 +1599,8 @@ def update_all_module_details
14141599
end
14151600
end
14161601

1602+
it { is_expected.to respond_to :update_host_via_sysinfo }
1603+
14171604
context '#update_module_details' do
14181605
def update_module_details
14191606
db_manager.update_module_details(module_instance)
@@ -1822,9 +2009,14 @@ def loader.load_error(module_path, error)
18222009
end
18232010
end
18242011

2012+
it { is_expected.to respond_to :update_vuln_details }
18252013
it { is_expected.to respond_to :usable }
18262014
it { is_expected.to respond_to :usable= }
2015+
it { is_expected.to respond_to :validate_import_file }
2016+
it { is_expected.to respond_to :validate_ips }
2017+
it { is_expected.to respond_to :vulns }
18272018
it { is_expected.to respond_to :warn_about_rubies }
18282019
it { is_expected.to respond_to :workspace }
18292020
it { is_expected.to respond_to :workspace= }
2021+
it { is_expected.to respond_to :workspaces }
18302022
end

spec/lib/msf/host_state_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
RSpec.describe Msf::HostState do
2+
context 'CONSTANTS' do
3+
context 'Alive' do
4+
subject(:alive) {
5+
described_class::Alive
6+
}
7+
8+
it { is_expected.to eq('alive') }
9+
end
10+
11+
context 'Dead' do
12+
subject(:dead) {
13+
described_class::Dead
14+
}
15+
16+
it { is_expected.to eq('down') }
17+
end
18+
19+
context 'Unknown' do
20+
subject(:unknown) {
21+
described_class::Unknown
22+
}
23+
24+
it { is_expected.to eq('unknown') }
25+
end
26+
end
27+
end

spec/lib/msf/service_state_spec.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
RSpec.describe Msf::ServiceState do
2+
context 'CONSTANTS' do
3+
context 'Closed' do
4+
subject(:closed) {
5+
described_class::Closed
6+
}
7+
8+
it { is_expected.to eq('closed') }
9+
end
10+
11+
context 'Filtered' do
12+
subject(:filtered) {
13+
described_class::Filtered
14+
}
15+
16+
it { is_expected.to eq('filtered') }
17+
end
18+
19+
context 'Open' do
20+
subject(:open) {
21+
described_class::Open
22+
}
23+
24+
it { is_expected.to eq('open') }
25+
end
26+
27+
context 'Unknown' do
28+
subject(:unknown) {
29+
described_class::Unknown
30+
}
31+
32+
it { is_expected.to eq('unknown') }
33+
end
34+
end
35+
end

0 commit comments

Comments
 (0)