metasploit-model 0.28.0-java → 0.29.0-java

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 (206) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -1
  3. data/config/locales/en.yml +0 -171
  4. data/lib/metasploit/model.rb +0 -2
  5. data/lib/metasploit/model/spec.rb +0 -130
  6. data/lib/metasploit/model/version.rb +1 -1
  7. data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +4 -6
  8. data/spec/support/shared/examples/metasploit/model/translation.rb +1 -1
  9. data/spec/support/shared/examples/search_association.rb +1 -1
  10. data/spec/support/shared/examples/search_with.rb +4 -2
  11. metadata +2 -348
  12. data/app/models/metasploit/model/module/ancestor/spec/template.rb +0 -125
  13. data/app/models/metasploit/model/module/class/spec/template.rb +0 -92
  14. data/app/models/metasploit/model/module/instance/spec/template.rb +0 -97
  15. data/app/models/metasploit/model/spec/template.rb +0 -277
  16. data/app/validators/derivation_validator.rb +0 -17
  17. data/app/validators/dynamic_length_validator.rb +0 -45
  18. data/lib/metasploit/model/architecture.rb +0 -342
  19. data/lib/metasploit/model/author.rb +0 -54
  20. data/lib/metasploit/model/authority.rb +0 -141
  21. data/lib/metasploit/model/authority/bid.rb +0 -10
  22. data/lib/metasploit/model/authority/cve.rb +0 -10
  23. data/lib/metasploit/model/authority/msb.rb +0 -10
  24. data/lib/metasploit/model/authority/osvdb.rb +0 -10
  25. data/lib/metasploit/model/authority/pmasa.rb +0 -10
  26. data/lib/metasploit/model/authority/secunia.rb +0 -10
  27. data/lib/metasploit/model/authority/us_cert_vu.rb +0 -10
  28. data/lib/metasploit/model/authority/waraxe.rb +0 -31
  29. data/lib/metasploit/model/authority/zdi.rb +0 -10
  30. data/lib/metasploit/model/derivation.rb +0 -109
  31. data/lib/metasploit/model/derivation/full_name.rb +0 -19
  32. data/lib/metasploit/model/email_address.rb +0 -124
  33. data/lib/metasploit/model/module.rb +0 -20
  34. data/lib/metasploit/model/module/action.rb +0 -52
  35. data/lib/metasploit/model/module/ancestor.rb +0 -491
  36. data/lib/metasploit/model/module/ancestor/spec.rb +0 -6
  37. data/lib/metasploit/model/module/architecture.rb +0 -34
  38. data/lib/metasploit/model/module/author.rb +0 -40
  39. data/lib/metasploit/model/module/class.rb +0 -403
  40. data/lib/metasploit/model/module/class/spec.rb +0 -6
  41. data/lib/metasploit/model/module/handler.rb +0 -29
  42. data/lib/metasploit/model/module/instance.rb +0 -622
  43. data/lib/metasploit/model/module/instance/spec.rb +0 -6
  44. data/lib/metasploit/model/module/path.rb +0 -159
  45. data/lib/metasploit/model/module/platform.rb +0 -32
  46. data/lib/metasploit/model/module/rank.rb +0 -85
  47. data/lib/metasploit/model/module/reference.rb +0 -32
  48. data/lib/metasploit/model/module/stance.rb +0 -16
  49. data/lib/metasploit/model/module/target.rb +0 -78
  50. data/lib/metasploit/model/module/target/architecture.rb +0 -34
  51. data/lib/metasploit/model/module/target/platform.rb +0 -34
  52. data/lib/metasploit/model/module/type.rb +0 -38
  53. data/lib/metasploit/model/platform.rb +0 -246
  54. data/lib/metasploit/model/real_pathname.rb +0 -16
  55. data/lib/metasploit/model/reference.rb +0 -104
  56. data/spec/app/models/metasploit/model/module/ancestor/spec/template_spec.rb +0 -174
  57. data/spec/app/models/metasploit/model/module/class/spec/template_spec.rb +0 -222
  58. data/spec/app/models/metasploit/model/module/instance/spec/template_spec.rb +0 -201
  59. data/spec/app/models/metasploit/model/search/operator/deprecated/app_spec.rb +0 -62
  60. data/spec/app/models/metasploit/model/search/operator/deprecated/author_spec.rb +0 -197
  61. data/spec/app/models/metasploit/model/search/operator/deprecated/authority_spec.rb +0 -135
  62. data/spec/app/models/metasploit/model/search/operator/deprecated/platform_spec.rb +0 -124
  63. data/spec/app/models/metasploit/model/search/operator/deprecated/ref_spec.rb +0 -387
  64. data/spec/app/models/metasploit/model/search/operator/deprecated/text_spec.rb +0 -399
  65. data/spec/app/models/metasploit/model/spec/template_spec.rb +0 -23
  66. data/spec/app/validators/derivation_validator_spec.rb +0 -92
  67. data/spec/app/validators/dynamic_length_validator_spec.rb +0 -293
  68. data/spec/dummy/app/models/dummy/architecture.rb +0 -92
  69. data/spec/dummy/app/models/dummy/author.rb +0 -15
  70. data/spec/dummy/app/models/dummy/authority.rb +0 -130
  71. data/spec/dummy/app/models/dummy/email_address.rb +0 -27
  72. data/spec/dummy/app/models/dummy/module/action.rb +0 -25
  73. data/spec/dummy/app/models/dummy/module/ancestor.rb +0 -67
  74. data/spec/dummy/app/models/dummy/module/architecture.rb +0 -19
  75. data/spec/dummy/app/models/dummy/module/author.rb +0 -28
  76. data/spec/dummy/app/models/dummy/module/class.rb +0 -69
  77. data/spec/dummy/app/models/dummy/module/instance.rb +0 -209
  78. data/spec/dummy/app/models/dummy/module/path.rb +0 -64
  79. data/spec/dummy/app/models/dummy/module/platform.rb +0 -19
  80. data/spec/dummy/app/models/dummy/module/rank.rb +0 -44
  81. data/spec/dummy/app/models/dummy/module/reference.rb +0 -19
  82. data/spec/dummy/app/models/dummy/module/target.rb +0 -62
  83. data/spec/dummy/app/models/dummy/module/target/architecture.rb +0 -19
  84. data/spec/dummy/app/models/dummy/module/target/platform.rb +0 -19
  85. data/spec/dummy/app/models/dummy/platform.rb +0 -58
  86. data/spec/dummy/app/models/dummy/reference.rb +0 -31
  87. data/spec/dummy/spec/factories/dummy/architectures.rb +0 -13
  88. data/spec/dummy/spec/factories/dummy/authorities.rb +0 -32
  89. data/spec/dummy/spec/factories/dummy/authors.rb +0 -8
  90. data/spec/dummy/spec/factories/dummy/email_addresses.rb +0 -8
  91. data/spec/dummy/spec/factories/dummy/module/actions.rb +0 -13
  92. data/spec/dummy/spec/factories/dummy/module/ancestors.rb +0 -45
  93. data/spec/dummy/spec/factories/dummy/module/architectures.rb +0 -35
  94. data/spec/dummy/spec/factories/dummy/module/authors.rb +0 -10
  95. data/spec/dummy/spec/factories/dummy/module/classes.rb +0 -40
  96. data/spec/dummy/spec/factories/dummy/module/instances.rb +0 -86
  97. data/spec/dummy/spec/factories/dummy/module/paths.rb +0 -16
  98. data/spec/dummy/spec/factories/dummy/module/platforms.rb +0 -35
  99. data/spec/dummy/spec/factories/dummy/module/ranks.rb +0 -14
  100. data/spec/dummy/spec/factories/dummy/module/references.rb +0 -17
  101. data/spec/dummy/spec/factories/dummy/module/target/architectures.rb +0 -40
  102. data/spec/dummy/spec/factories/dummy/module/target/platforms.rb +0 -41
  103. data/spec/dummy/spec/factories/dummy/module/targets.rb +0 -46
  104. data/spec/dummy/spec/factories/dummy/platforms.rb +0 -3
  105. data/spec/dummy/spec/factories/dummy/references.rb +0 -26
  106. data/spec/factories/metasploit/model/architectures.rb +0 -6
  107. data/spec/factories/metasploit/model/authorities.rb +0 -28
  108. data/spec/factories/metasploit/model/authors.rb +0 -9
  109. data/spec/factories/metasploit/model/email_addresses.rb +0 -14
  110. data/spec/factories/metasploit/model/module/actions.rb +0 -9
  111. data/spec/factories/metasploit/model/module/ancestors.rb +0 -180
  112. data/spec/factories/metasploit/model/module/architectures.rb +0 -15
  113. data/spec/factories/metasploit/model/module/classes.rb +0 -47
  114. data/spec/factories/metasploit/model/module/handlers.rb +0 -3
  115. data/spec/factories/metasploit/model/module/instances.rb +0 -83
  116. data/spec/factories/metasploit/model/module/paths.rb +0 -51
  117. data/spec/factories/metasploit/model/module/platforms.rb +0 -15
  118. data/spec/factories/metasploit/model/module/ranks.rb +0 -9
  119. data/spec/factories/metasploit/model/module/references.rb +0 -11
  120. data/spec/factories/metasploit/model/module/stances.rb +0 -3
  121. data/spec/factories/metasploit/model/module/targets.rb +0 -22
  122. data/spec/factories/metasploit/model/module/types.rb +0 -5
  123. data/spec/factories/metasploit/model/references.rb +0 -88
  124. data/spec/lib/metasploit/model/architecture_spec.rb +0 -52
  125. data/spec/lib/metasploit/model/author_spec.rb +0 -6
  126. data/spec/lib/metasploit/model/authority/bid_spec.rb +0 -17
  127. data/spec/lib/metasploit/model/authority/cve_spec.rb +0 -17
  128. data/spec/lib/metasploit/model/authority/msb_spec.rb +0 -17
  129. data/spec/lib/metasploit/model/authority/osvdb_spec.rb +0 -17
  130. data/spec/lib/metasploit/model/authority/pmasa_spec.rb +0 -17
  131. data/spec/lib/metasploit/model/authority/secunia_spec.rb +0 -17
  132. data/spec/lib/metasploit/model/authority/us_cert_vu_spec.rb +0 -17
  133. data/spec/lib/metasploit/model/authority/waraxe_spec.rb +0 -51
  134. data/spec/lib/metasploit/model/authority/zdi_spec.rb +0 -21
  135. data/spec/lib/metasploit/model/authority_spec.rb +0 -10
  136. data/spec/lib/metasploit/model/derivation/full_name_spec.rb +0 -75
  137. data/spec/lib/metasploit/model/derivation_spec.rb +0 -217
  138. data/spec/lib/metasploit/model/email_address_spec.rb +0 -19
  139. data/spec/lib/metasploit/model/module/action_spec.rb +0 -6
  140. data/spec/lib/metasploit/model/module/ancestor_spec.rb +0 -6
  141. data/spec/lib/metasploit/model/module/architecture_spec.rb +0 -9
  142. data/spec/lib/metasploit/model/module/author_spec.rb +0 -6
  143. data/spec/lib/metasploit/model/module/class_spec.rb +0 -19
  144. data/spec/lib/metasploit/model/module/handler_spec.rb +0 -61
  145. data/spec/lib/metasploit/model/module/instance_spec.rb +0 -183
  146. data/spec/lib/metasploit/model/module/path_spec.rb +0 -6
  147. data/spec/lib/metasploit/model/module/platform_spec.rb +0 -9
  148. data/spec/lib/metasploit/model/module/rank_spec.rb +0 -29
  149. data/spec/lib/metasploit/model/module/reference_spec.rb +0 -9
  150. data/spec/lib/metasploit/model/module/stance_spec.rb +0 -30
  151. data/spec/lib/metasploit/model/module/target/architecture_spec.rb +0 -9
  152. data/spec/lib/metasploit/model/module/target/platform_spec.rb +0 -9
  153. data/spec/lib/metasploit/model/module/target_spec.rb +0 -9
  154. data/spec/lib/metasploit/model/module/type_spec.rb +0 -125
  155. data/spec/lib/metasploit/model/platform_spec.rb +0 -100
  156. data/spec/lib/metasploit/model/reference_spec.rb +0 -21
  157. data/spec/support/shared/contexts/metasploit/model/module/ancestor/contents/metasploit_module.rb +0 -12
  158. data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents.rb +0 -10
  159. data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents/metasploit_module.rb +0 -15
  160. data/spec/support/shared/examples/derives.rb +0 -115
  161. data/spec/support/shared/examples/metasploit/model/architecture.rb +0 -425
  162. data/spec/support/shared/examples/metasploit/model/architecture/seed.rb +0 -25
  163. data/spec/support/shared/examples/metasploit/model/author.rb +0 -27
  164. data/spec/support/shared/examples/metasploit/model/authority.rb +0 -124
  165. data/spec/support/shared/examples/metasploit/model/authority/seed.rb +0 -49
  166. data/spec/support/shared/examples/metasploit/model/email_address.rb +0 -220
  167. data/spec/support/shared/examples/metasploit/model/module/action.rb +0 -26
  168. data/spec/support/shared/examples/metasploit/model/module/ancestor.rb +0 -2004
  169. data/spec/support/shared/examples/metasploit/model/module/ancestor/payload_factory.rb +0 -63
  170. data/spec/support/shared/examples/metasploit/model/module/architecture.rb +0 -36
  171. data/spec/support/shared/examples/metasploit/model/module/author.rb +0 -29
  172. data/spec/support/shared/examples/metasploit/model/module/class.rb +0 -1514
  173. data/spec/support/shared/examples/metasploit/model/module/handler.rb +0 -21
  174. data/spec/support/shared/examples/metasploit/model/module/instance.rb +0 -1384
  175. data/spec/support/shared/examples/metasploit/model/module/instance/class_methods.rb +0 -537
  176. data/spec/support/shared/examples/metasploit/model/module/instance/is_not_stanced_with_module_type.rb +0 -22
  177. data/spec/support/shared/examples/metasploit/model/module/instance/is_stanced_with_module_type.rb +0 -38
  178. data/spec/support/shared/examples/metasploit/model/module/instance/validates/dynamic_length_of.rb +0 -131
  179. data/spec/support/shared/examples/metasploit/model/module/path.rb +0 -493
  180. data/spec/support/shared/examples/metasploit/model/module/platform.rb +0 -36
  181. data/spec/support/shared/examples/metasploit/model/module/rank.rb +0 -92
  182. data/spec/support/shared/examples/metasploit/model/module/reference.rb +0 -16
  183. data/spec/support/shared/examples/metasploit/model/module/target.rb +0 -29
  184. data/spec/support/shared/examples/metasploit/model/module/target/architecture.rb +0 -56
  185. data/spec/support/shared/examples/metasploit/model/module/target/platform.rb +0 -56
  186. data/spec/support/shared/examples/metasploit/model/platform.rb +0 -213
  187. data/spec/support/shared/examples/metasploit/model/real_pathname.rb +0 -29
  188. data/spec/support/shared/examples/metasploit/model/reference.rb +0 -410
  189. data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/app.rb +0 -44
  190. data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/authority.rb +0 -72
  191. data/spec/support/templates/metasploit/model/module/ancestors/_attributes.rb.erb +0 -9
  192. data/spec/support/templates/metasploit/model/module/ancestors/_methods.rb.erb +0 -8
  193. data/spec/support/templates/metasploit/model/module/ancestors/_validations.rb.erb +0 -6
  194. data/spec/support/templates/metasploit/model/module/ancestors/base.rb.erb +0 -3
  195. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_auxiliary.rb.erb +0 -1
  196. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_encoder.rb.erb +0 -1
  197. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_exploit.rb.erb +0 -1
  198. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_non_payload.rb.erb +0 -5
  199. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_nop.rb.erb +0 -1
  200. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_payload.rb.erb +0 -4
  201. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_post.rb.erb +0 -1
  202. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_handled.rb.erb +0 -20
  203. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_single.rb.erb +0 -1
  204. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stage.rb.erb +0 -0
  205. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stager.rb.erb +0 -1
  206. data/spec/support/templates/metasploit/model/module/classes/_methods.rb.erb +0 -9
@@ -1,35 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_architecture,
3
- class: Dummy::Module::Architecture,
4
- traits: [
5
- :metasploit_model_base,
6
- :metasploit_model_module_architecture
7
- ] do
8
- ignore do
9
- # have to use module_type from metasploit_model_module_architecture trait to ensure module_instance will support
10
- # module architectures.
11
- module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
12
- end
13
-
14
- architecture { generate :dummy_architecture }
15
- module_instance {
16
- FactoryGirl.build(
17
- :dummy_module_instance,
18
- # disable module_instance factory from building module_architectures since this factory is already building
19
- # one
20
- module_architectures_length: 0,
21
- module_class: module_class
22
- )
23
- }
24
-
25
- after(:build) do |module_architecture|
26
- module_instance = module_architecture.module_instance
27
-
28
- if module_instance
29
- unless module_instance.module_architectures.include? module_architecture
30
- module_instance.module_architectures << module_architecture
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,10 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_author, :class => Dummy::Module::Author do
3
- association :author, :factory => :dummy_author
4
- association :module_instance, :factory => :dummy_module_instance
5
-
6
- factory :full_dummy_module_author do
7
- association :email_address, :factory => :dummy_email_address
8
- end
9
- end
10
- end
@@ -1,40 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_class,
3
- :class => Dummy::Module::Class,
4
- :traits => [
5
- :metasploit_model_base,
6
- :metasploit_model_module_class
7
- ] do
8
- #
9
- # Associations
10
- #
11
-
12
- # depends on module_type and payload_type
13
- ancestors {
14
- ancestors = []
15
-
16
- # ignored attribute from factory; NOT the instance attribute
17
- case module_type
18
- when 'payload'
19
- # ignored attribute from factory; NOT the instance attribute
20
- case payload_type
21
- when 'single'
22
- ancestors << FactoryGirl.create(:single_payload_dummy_module_ancestor)
23
- when 'staged'
24
- ancestors << FactoryGirl.create(:stage_payload_dummy_module_ancestor)
25
- ancestors << FactoryGirl.create(:stager_payload_dummy_module_ancestor)
26
- else
27
- raise ArgumentError,
28
- "Don't know how to create Dummy::Module::Class#ancestors " \
29
- "for Dummy::Module::Class#payload_type (#{payload_type})"
30
- end
31
- else
32
- ancestors << FactoryGirl.create(:dummy_module_ancestor, :module_type => module_type)
33
- end
34
-
35
- ancestors
36
- }
37
-
38
- rank { generate :dummy_module_rank }
39
- end
40
- end
@@ -1,86 +0,0 @@
1
- FactoryGirl.define do
2
- factory_by_attribute = {
3
- actions: :dummy_module_action,
4
- module_references: :dummy_module_reference,
5
- }
6
-
7
- factory :dummy_module_instance,
8
- :class => Dummy::Module::Instance,
9
- :traits => [
10
- :metasploit_model_base,
11
- :metasploit_model_module_instance
12
- ] do
13
- #
14
- # Associations
15
- #
16
-
17
- association :module_class, :factory => :dummy_module_class
18
-
19
- # attribute must be called after association is created so that support_stance? has access to module_class
20
- # needs to be declared explicitly after association as calling trait here (instead as an argument to factory
21
- # :traits) did not work.
22
- stance {
23
- if stanced?
24
- generate :metasploit_model_module_stance
25
- else
26
- nil
27
- end
28
- }
29
-
30
- # needs to be an after(:build) and not an after(:create) to ensure counted associations are populated before being
31
- # validated.
32
- after(:build) do |dummy_module_instance, evaluator|
33
- dummy_module_instance.module_authors = evaluator.module_authors_length.times.collect {
34
- FactoryGirl.build(:dummy_module_author, module_instance: dummy_module_instance)
35
- }
36
-
37
- module_class = dummy_module_instance.module_class
38
-
39
- # only attempt to build supported associations if the module_class is valid because supports depends on a valid
40
- # module_type and validating the module_class will derive module_type.
41
- if module_class && module_class.valid?
42
- factory_by_attribute.each do |attribute, factory|
43
- if dummy_module_instance.allows?(attribute)
44
- length = evaluator.send("#{attribute}_length")
45
-
46
- collection = length.times.collect {
47
- FactoryGirl.build(factory, module_instance: dummy_module_instance)
48
- }
49
-
50
- dummy_module_instance.send("#{attribute}=", collection)
51
- end
52
- end
53
-
54
- # make sure targets are generated first so that module_architectures and module_platforms can be include
55
- # the targets' architectures and platforms.
56
- if dummy_module_instance.allows?(:targets)
57
- # factory adds built module_targets to module_instance.
58
- FactoryGirl.build_list(
59
- :dummy_module_target,
60
- evaluator.targets_length,
61
- module_instance: dummy_module_instance
62
- )
63
- # module_architectures and module_platforms will be derived from targets
64
- else
65
- # if there are no targets, then architectures and platforms need to be explicitly defined on module instance
66
- # since they can't be derived from anything
67
- [:architecture, :platform].each do |suffix|
68
- attribute = "module_#{suffix.to_s.pluralize}".to_sym
69
-
70
- if dummy_module_instance.allows?(attribute)
71
- factory = "dummy_module_#{suffix}"
72
- length = evaluator.send("#{attribute}_length")
73
-
74
- collection = FactoryGirl.build_list(
75
- factory,
76
- length,
77
- module_instance: dummy_module_instance
78
- )
79
- dummy_module_instance.send("#{attribute}=", collection)
80
- end
81
- end
82
- end
83
- end
84
- end
85
- end
86
- end
@@ -1,16 +0,0 @@
1
- FactoryGirl.define do
2
- # Used to test {Metasploit::Model::Module::Path} and to ensure that traits work when used in factories.
3
- factory :dummy_module_path,
4
- :aliases => [
5
- :unnamed_dummy_module_path
6
- ],
7
- :class => Dummy::Module::Path,
8
- :traits => [
9
- :unnamed_metasploit_model_module_path
10
- ] do
11
- factory :named_dummy_module_path,
12
- :traits => [
13
- :named_metasploit_model_module_path
14
- ]
15
- end
16
- end
@@ -1,35 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_platform,
3
- class: Dummy::Module::Platform,
4
- traits: [
5
- :metasploit_model_base,
6
- :metasploit_model_module_platform
7
- ] do
8
- ignore do
9
- # have to use module_type from metasploit_model_module_platform trait to ensure module_instance will support
10
- # module platforms.
11
- module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
12
- end
13
-
14
- module_instance {
15
- FactoryGirl.build(
16
- :dummy_module_instance,
17
- module_class: module_class,
18
- # disable module_instance factory from building module_platforms since this factory is already building one
19
- module_platforms_length: 0
20
- )
21
- }
22
- platform { generate :dummy_platform }
23
-
24
- after(:build) do |module_platform|
25
- module_instance = module_platform.module_instance
26
-
27
- if module_instance
28
- unless module_instance.module_platforms.include? module_platform
29
- module_instance.module_platforms << module_platform
30
- end
31
- end
32
- end
33
- end
34
- end
35
-
@@ -1,14 +0,0 @@
1
- FactoryGirl.define do
2
- # Dummy::Module::Rank does not have a factory because all valid records are seeded, so it only has a sequence to grab
3
- # a seeded record
4
-
5
- names = Metasploit::Model::Module::Rank::NUMBER_BY_NAME.keys
6
-
7
- sequence :dummy_module_rank do |n|
8
- name = names[n % names.length]
9
-
10
- rank = Dummy::Module::Rank.with_name(name)
11
-
12
- rank
13
- end
14
- end
@@ -1,17 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_reference,
3
- class: Dummy::Module::Reference,
4
- traits: [
5
- :metasploit_model_base,
6
- :metasploit_model_module_reference
7
- ] do
8
- ignore do
9
- # have to use module_type from metasploit_model_module_reference trait to ensure module_instance will support
10
- # module references.
11
- module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
12
- end
13
-
14
- module_instance { FactoryGirl.create(:dummy_module_instance, module_class: module_class) }
15
- association :reference, factory: :dummy_reference
16
- end
17
- end
@@ -1,40 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_target_architecture,
3
- class: Dummy::Module::Target::Architecture,
4
- traits: [
5
- :metasploit_model_base
6
- ] do
7
- architecture { generate :dummy_architecture }
8
- association :module_target,
9
- factory: :dummy_module_target,
10
- strategy: :build,
11
- # disable module_target factory from building target_architectures since this factory is already
12
- # building one
13
- target_architectures_length: 0
14
-
15
- after(:build) do |module_target_architecture|
16
- module_target = module_target_architecture.module_target
17
-
18
- if module_target
19
- unless module_target.target_architectures.include? module_target_architecture
20
- module_target.target_architectures << module_target_architecture
21
- end
22
-
23
- architecture = module_target_architecture.architecture
24
- module_instance = module_target.module_instance
25
-
26
- if architecture && module_instance
27
- actual_architecture_set = module_instance.module_architectures.map(&:architecture)
28
-
29
- unless actual_architecture_set.include? architecture
30
- module_instance.module_architectures << FactoryGirl.build(
31
- :dummy_module_architecture,
32
- architecture: architecture,
33
- module_instance: module_instance
34
- )
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,41 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_target_platform,
3
- class: Dummy::Module::Target::Platform,
4
- traits: [
5
- :metasploit_model_base
6
- ] do
7
- association :module_target,
8
- factory: :dummy_module_target,
9
- strategy: :build,
10
- # disable module_target factory from building target_platforms since this factory is already
11
- # building one
12
- target_platforms_length: 0
13
-
14
- platform { generate :dummy_platform }
15
-
16
- after(:build) do |module_target_platform|
17
- module_target = module_target_platform.module_target
18
-
19
- if module_target
20
- unless module_target.target_platforms.include? module_target_platform
21
- module_target.target_platforms << module_target_platform
22
- end
23
-
24
- module_instance = module_target.module_instance
25
- platform = module_target_platform.platform
26
-
27
- if module_instance && platform
28
- actual_platform_set = module_instance.module_platforms.map(&:platform)
29
-
30
- unless actual_platform_set.include? platform
31
- module_instance.module_platforms << FactoryGirl.build(
32
- :dummy_module_platform,
33
- module_instance: module_instance,
34
- platform: platform
35
- )
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,46 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_module_target,
3
- :class => Dummy::Module::Target,
4
- :traits => [
5
- :metasploit_model_base,
6
- :metasploit_model_module_target
7
- ] do
8
- ignore do
9
- # have to use module_type from metasploit_model_module_target trait to ensure module_instance will support
10
- # module targets.
11
- module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
12
- end
13
-
14
- module_instance {
15
- # module_instance MUST be built because it will fail validation without targets
16
- FactoryGirl.build(
17
- :dummy_module_instance,
18
- module_class: module_class,
19
- # disable module_instance factory's after(:build) from building module_targets since this factory is already
20
- # building it and if they both build module_targets, then the validations will detect a mismatch.
21
- targets_length: 0
22
- )
23
- }
24
-
25
- after(:build) { |dummy_module_target, evaluator|
26
- [:architecture, :platform].each do |infix|
27
- attribute = "target_#{infix.to_s.pluralize}"
28
- factory = "dummy_module_target_#{infix}"
29
- length = evaluator.send("#{attribute}_length")
30
-
31
- # factories add selves to associations on dummy_module_target
32
- FactoryGirl.build_list(
33
- factory,
34
- length,
35
- module_target: dummy_module_target
36
- )
37
- end
38
-
39
- module_instance = dummy_module_target.module_instance
40
-
41
- unless module_instance.targets.include? dummy_module_target
42
- module_instance.targets << dummy_module_target
43
- end
44
- }
45
- end
46
- end
@@ -1,3 +0,0 @@
1
- FactoryGirl.define do
2
- sequence :dummy_platform, Dummy::Platform.all.cycle
3
- end
@@ -1,26 +0,0 @@
1
- FactoryGirl.define do
2
- factory :dummy_reference,
3
- :class => Dummy::Reference,
4
- :traits => [
5
- :metasploit_model_base,
6
- :metasploit_model_reference
7
- ] do
8
- #
9
- # Associations
10
- #
11
-
12
- association :authority, :factory => :dummy_authority
13
-
14
- factory :obsolete_dummy_reference,
15
- :traits => [
16
- :obsolete_metasploit_model_reference
17
- ] do
18
- association :authority, :factory => :obsolete_dummy_authority
19
- end
20
-
21
- factory :url_dummy_reference,
22
- :traits => [
23
- :url_metasploit_model_reference
24
- ]
25
- end
26
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- sequence :metasploit_model_architecture_abbreviation, Metasploit::Model::Architecture::ABBREVIATIONS.cycle
3
- sequence :metasploit_model_architecture_bits, Metasploit::Model::Architecture::BITS.cycle
4
- sequence :metasploit_model_architecture_endianness, Metasploit::Model::Architecture::ENDIANNESSES.cycle
5
- sequence :metasploit_model_architecture_family, Metasploit::Model::Architecture::FAMILIES.cycle
6
- end
@@ -1,28 +0,0 @@
1
- FactoryGirl.define do
2
- sequence :metasploit_model_authority_abbreviation do |n|
3
- # can't use '-' as {Metasploit::Model::Search::Operator::Deprecated::Ref} treats '-' as separating authority
4
- # abbreviation from reference designation.
5
- "METASPLOIT_MODEL_AUTHORITY#{n}"
6
- end
7
-
8
- sequence :metasploit_model_authority_summary do |n|
9
- "Metasploit::Model::Authority #{n}"
10
- end
11
-
12
- sequence :metasploit_model_authority_url do |n|
13
- "http://example.com/metasploit/model/authority/#{n}"
14
- end
15
-
16
- trait :metasploit_model_authority do
17
- abbreviation { generate :metasploit_model_authority_abbreviation }
18
- end
19
-
20
- trait :full_metasploit_model_authority do
21
- summary { generate :metasploit_model_authority_summary }
22
- url { generate :metasploit_model_authority_url }
23
- end
24
-
25
- trait :obsolete_metasploit_model_authority do
26
- obsolete { true }
27
- end
28
- end