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,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Spec::Template do
4
- context 'root' do
5
- around(:each) do |example|
6
- old_root = described_class.root
7
-
8
- begin
9
- example.run
10
- ensure
11
- described_class.root = old_root
12
- end
13
- end
14
-
15
- it 'modifies subclass root when set' do
16
- expected = double('root')
17
-
18
- expect {
19
- described_class.root = expected
20
- }.to change(Metasploit::Model::Module::Ancestor::Spec::Template, :root).to(expected)
21
- end
22
- end
23
- end
@@ -1,92 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DerivationValidator do
4
- subject(:derivation_validator) do
5
- described_class.new(
6
- :attributes => attributes
7
- )
8
- end
9
-
10
- let(:attribute) do
11
- :full_name
12
- end
13
-
14
- let(:attributes) do
15
- [
16
- attribute
17
- ]
18
- end
19
-
20
- context '#validate_each' do
21
- subject(:validate_each) do
22
- derivation_validator.validate_each(record, attribute, value)
23
- end
24
-
25
- let(:record) do
26
- record_class.new
27
- end
28
-
29
- let(:record_class) do
30
- # capture attribute name in local so it is accessible in Class block scope.
31
- attribute = self.attribute
32
-
33
- Class.new do
34
- include ActiveModel::Validations
35
-
36
- validates attribute,
37
- :derivation => true
38
- end
39
- end
40
-
41
- let(:value) do
42
- nil
43
- end
44
-
45
- context 'without derived_<attribute>' do
46
- it 'should raise error' do
47
- expect {
48
- validate_each
49
- }.to raise_error(NoMethodError)
50
- end
51
- end
52
-
53
- context 'with derived_<attribute>' do
54
- let(:derived_value) do
55
- 'derived_value'
56
- end
57
-
58
- before(:each) do
59
- # capture for record scope
60
- derived_value = self.derived_value
61
-
62
- record.define_singleton_method("derived_#{attribute}") do
63
- derived_value
64
- end
65
- end
66
-
67
- context 'with value matches derived_<attribute>' do
68
- let(:value) do
69
- derived_value
70
- end
71
-
72
- it 'should not record any errors' do
73
- validate_each
74
-
75
- record.errors.should be_empty
76
- end
77
- end
78
-
79
- context 'without value matches derived_<attribute>' do
80
- let(:value) do
81
- 'non_derived_value'
82
- end
83
-
84
- it 'should record error on attribute' do
85
- validate_each
86
-
87
- record.errors[attribute].should include('must match its derivation')
88
- end
89
- end
90
- end
91
- end
92
- end
@@ -1,293 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DynamicLengthValidator do
4
- subject(:dynamic_length_validator) do
5
- described_class.new(
6
- :attributes => attributes
7
- )
8
- end
9
-
10
- let(:attribute) do
11
- :things
12
- end
13
-
14
- let(:attributes) do
15
- [
16
- attribute
17
- ]
18
- end
19
-
20
- context '#validate_each' do
21
- subject(:validate_each) do
22
- dynamic_length_validator.validate_each(record, attribute, value)
23
- end
24
-
25
- let(:record) do
26
- record_class.new
27
- end
28
-
29
- let(:record_class) do
30
- # capture attribute name in local so it is accessible in Class block scope.
31
- attribute = self.attribute
32
- dynamic_length_validation_options = self.dynamic_length_validation_options
33
-
34
- Class.new do
35
- include ActiveModel::Validations
36
-
37
- validates attribute,
38
- dynamic_length: true
39
-
40
- define_method(:dynamic_length_validation_options) do |attribute|
41
- dynamic_length_validation_options
42
- end
43
- end
44
- end
45
-
46
- let(:value) do
47
- [1] * value_length
48
- end
49
-
50
- let(:value_length) do
51
- 0
52
- end
53
-
54
- context 'record.dynamic_length_validation_options' do
55
- context 'with {}' do
56
- let(:dynamic_length_validation_options) do
57
- {}
58
- end
59
-
60
- it 'should not add any errors to record' do
61
- validate_each
62
-
63
- record.errors.should be_empty
64
- end
65
- end
66
-
67
- context 'with :is' do
68
- let(:dynamic_length_validation_options) do
69
- {
70
- is: is
71
- }
72
- end
73
-
74
- let(:is) do
75
- 0
76
- end
77
-
78
- context 'with same length as :is' do
79
- let(:value_length) do
80
- is
81
- end
82
-
83
- it 'should not add error on record' do
84
- validate_each
85
-
86
- record.errors.should be_empty
87
- end
88
- end
89
-
90
- context 'without same length as :is' do
91
- let(:value_length) do
92
- is + 1
93
- end
94
-
95
- it 'should record :wrong_length error on attribute' do
96
- record.errors.should_receive(:add).with(
97
- attribute,
98
- :wrong_length,
99
- hash_including(
100
- count: is
101
- )
102
- )
103
-
104
- validate_each
105
- end
106
-
107
- context 'with :wrong_length' do
108
- let(:dynamic_length_validation_options) do
109
- super().merge(
110
- wrong_length: wrong_length
111
- )
112
- end
113
-
114
- let(:wrong_length) do
115
- 'Wrong length message'
116
- end
117
-
118
- it 'should pass :wrong_length value as :message' do
119
- record.errors.should_receive(:add).with(
120
- attribute,
121
- :wrong_length,
122
- hash_including(
123
- message: wrong_length,
124
- count: is
125
- )
126
- )
127
-
128
- validate_each
129
- end
130
- end
131
- end
132
- end
133
-
134
- context 'with :maximum' do
135
- let(:dynamic_length_validation_options) do
136
- {
137
- maximum: maximum
138
- }
139
- end
140
-
141
- let(:maximum) do
142
- 1
143
- end
144
-
145
- context 'with less than :maximum' do
146
- let(:value_length) do
147
- maximum - 1
148
- end
149
-
150
- it 'should not add error on record' do
151
- validate_each
152
-
153
- record.errors.should be_empty
154
- end
155
- end
156
-
157
- context 'with same as :maximum' do
158
- let(:value_length) do
159
- maximum
160
- end
161
-
162
- it 'should not add error on record' do
163
- validate_each
164
-
165
- record.errors.should be_empty
166
- end
167
- end
168
-
169
- context 'with greater than :maximum' do
170
- let(:value_length) do
171
- maximum + 1
172
- end
173
-
174
- it 'should record :too_long error on attribute' do
175
- record.errors.should_receive(:add).with(
176
- attribute,
177
- :too_long,
178
- hash_including(
179
- count: maximum
180
- )
181
- )
182
-
183
- validate_each
184
- end
185
-
186
- context 'with :too_long' do
187
- let(:dynamic_length_validation_options) do
188
- super().merge(
189
- too_long: too_long
190
- )
191
- end
192
-
193
- let(:too_long) do
194
- 'Too long message'
195
- end
196
-
197
- it 'should pass :too_long value as :message' do
198
- record.errors.should_receive(:add).with(
199
- attribute,
200
- :too_long,
201
- hash_including(
202
- message: too_long,
203
- count: maximum
204
- )
205
- )
206
-
207
- validate_each
208
- end
209
- end
210
- end
211
- end
212
-
213
- context 'with :minimum' do
214
- let(:dynamic_length_validation_options) do
215
- {
216
- minimum: minimum
217
- }
218
- end
219
-
220
- let(:minimum) do
221
- 1
222
- end
223
-
224
- context 'with less than :minimum' do
225
- let(:value_length) do
226
- minimum - 1
227
- end
228
-
229
- it 'should record :too_short error on attribute' do
230
- record.errors.should_receive(:add).with(
231
- attribute,
232
- :too_short,
233
- hash_including(
234
- count: minimum
235
- )
236
- )
237
-
238
- validate_each
239
- end
240
-
241
- context 'with :too_short' do
242
- let(:dynamic_length_validation_options) do
243
- super().merge(
244
- too_short: too_short
245
- )
246
- end
247
-
248
- let(:too_short) do
249
- 'Too short message'
250
- end
251
-
252
- it 'should pass :too_short value as :message' do
253
- record.errors.should_receive(:add).with(
254
- attribute,
255
- :too_short,
256
- hash_including(
257
- message: too_short,
258
- count: minimum
259
- )
260
- )
261
-
262
- validate_each
263
- end
264
- end
265
- end
266
-
267
- context 'with same as :minimum' do
268
- let(:value_length) do
269
- minimum
270
- end
271
-
272
- it 'should not add error on record' do
273
- validate_each
274
-
275
- record.errors.should be_empty
276
- end
277
- end
278
-
279
- context 'with greater than :minimum' do
280
- let(:value_length) do
281
- minimum + 1
282
- end
283
-
284
- it 'should not add error on record' do
285
- validate_each
286
-
287
- record.errors.should be_empty
288
- end
289
- end
290
- end
291
- end
292
- end
293
- end
@@ -1,92 +0,0 @@
1
- # Implementation of {Metasploit::Model::Architecture} to allow testing of {Metasploit::Model::Architecture} using an
2
- # in-memory ActiveModel and use of factories.
3
- class Dummy::Architecture < Metasploit::Model::Base
4
- include Metasploit::Model::Architecture
5
-
6
- #
7
- # Associations
8
- #
9
-
10
- # @!attribute [r] module_instances
11
- # {Dummy::Module::Instance Modules} that have this {Metasploit::Model::Module::Architecture} as a
12
- # {Dummy::Module::Instance#architectures support architecture}.
13
- #
14
- # @return [Array<Metasploit::Model::Module::Instance>]
15
-
16
- #
17
- # Attributes
18
- #
19
-
20
- # @!attribute [rw] abbreviation
21
- # Abbreviation used for the architecture. Will match ARCH constants in metasploit-framework.
22
- #
23
- # @return [String]
24
- attr_accessor :abbreviation
25
-
26
- # @!attribute [rw] bits
27
- # Number of bits supported by this architecture.
28
- #
29
- # @return [32] if 32-bit
30
- # @return [64] if 64-bit
31
- # @return [nil] if bits aren't applicable, such as for non-CPU architectures like ruby, etc.
32
- attr_accessor :bits
33
-
34
- # @!attribute [rw] endianness
35
- # The endianness of the architecture.
36
- #
37
- # @return ['big'] if big endian
38
- # @return ['little'] if little endian
39
- # @return [nil] if endianness is not applicable, such as for software architectures like tty.
40
- attr_accessor :endianness
41
-
42
- # @!attribute [rw] family
43
- # The CPU architecture family.
44
- #
45
- # @return [String] if a CPU architecture.
46
- # @return [nil] if not a CPU architecture.
47
- attr_accessor :family
48
-
49
- # @!attribute [rw] summary
50
- # Sentence length summary of architecture. Usually an expansion of the abbreviation or initialism in the
51
- # {#abbreviation} and the {#bits} and {#endianness} in prose.
52
- #
53
- # @return [String]
54
- attr_accessor :summary
55
-
56
- #
57
- # Methods
58
- #
59
-
60
- def self.all
61
- instance_by_abbreviation.values
62
- end
63
-
64
- def self.instance_by_abbreviation
65
- unless instance_variable_defined? :@instance_by_abbreviation
66
- @instance_by_abbreviation = {}
67
-
68
- SEED_ATTRIBUTES.each do |attributes|
69
- instance = new(attributes)
70
-
71
- unless instance.valid?
72
- raise Metasploit::Model::Invalid.new(instance)
73
- end
74
-
75
- # freeze object to prevent specs from modifying them and interfering with other specs.
76
- instance.freeze
77
-
78
- @instance_by_abbreviation[instance.abbreviation] = instance
79
- end
80
- end
81
-
82
- @instance_by_abbreviation
83
- end
84
-
85
- # Keep single instance for each set of attributes in {SEED_ATTRIBUTES} to emulate unique database seeds in-memory.
86
- #
87
- # @param abbreviation [String] {#abbreviation}
88
- # @return [Dummy::Architecture]
89
- def self.with_abbreviation(abbreviation)
90
- instance_by_abbreviation.fetch(abbreviation)
91
- end
92
- end