metasploit-model 1.0.0.pre.rails.pre.4.0 → 1.0.0

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -4
  3. data/CHANGELOG.md +6 -0
  4. data/CONTRIBUTING.md +9 -49
  5. data/Gemfile +1 -6
  6. data/RELEASING.md +89 -0
  7. data/UPGRADING.md +1 -0
  8. data/lib/metasploit/model/version.rb +23 -11
  9. data/metasploit-model.gemspec +3 -1
  10. data/spec/app/models/metasploit/model/association/reflection_spec.rb +5 -7
  11. data/spec/app/models/metasploit/model/search/group/base_spec.rb +2 -4
  12. data/spec/app/models/metasploit/model/search/group/intersection_spec.rb +2 -4
  13. data/spec/app/models/metasploit/model/search/group/union_spec.rb +2 -4
  14. data/spec/app/models/metasploit/model/search/operation/association_spec.rb +7 -9
  15. data/spec/app/models/metasploit/model/search/operation/base_spec.rb +5 -7
  16. data/spec/app/models/metasploit/model/search/operation/boolean_spec.rb +14 -11
  17. data/spec/app/models/metasploit/model/search/operation/date_spec.rb +6 -8
  18. data/spec/app/models/metasploit/model/search/operation/group/base_spec.rb +12 -14
  19. data/spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb +2 -4
  20. data/spec/app/models/metasploit/model/search/operation/group/union_spec.rb +2 -4
  21. data/spec/app/models/metasploit/model/search/operation/integer_spec.rb +2 -4
  22. data/spec/app/models/metasploit/model/search/operation/null_spec.rb +4 -6
  23. data/spec/app/models/metasploit/model/search/operation/set/integer_spec.rb +2 -4
  24. data/spec/app/models/metasploit/model/search/operation/set/string_spec.rb +2 -4
  25. data/spec/app/models/metasploit/model/search/operation/set_spec.rb +4 -6
  26. data/spec/app/models/metasploit/model/search/operation/string_spec.rb +2 -4
  27. data/spec/app/models/metasploit/model/search/operator/association_spec.rb +6 -8
  28. data/spec/app/models/metasploit/model/search/operator/attribute_spec.rb +13 -15
  29. data/spec/app/models/metasploit/model/search/operator/base_spec.rb +3 -5
  30. data/spec/app/models/metasploit/model/search/operator/delegation_spec.rb +13 -11
  31. data/spec/app/models/metasploit/model/search/operator/group/base_spec.rb +5 -7
  32. data/spec/app/models/metasploit/model/search/operator/group/intersection_spec.rb +3 -5
  33. data/spec/app/models/metasploit/model/search/operator/group/union_spec.rb +3 -5
  34. data/spec/app/models/metasploit/model/search/operator/null_spec.rb +5 -7
  35. data/spec/app/models/metasploit/model/search/operator/single_spec.rb +26 -28
  36. data/spec/app/models/metasploit/model/search/query_spec.rb +48 -50
  37. data/spec/app/models/metasploit/model/visitation/visitor_spec.rb +7 -9
  38. data/spec/app/validators/ip_format_validator_spec.rb +7 -9
  39. data/spec/app/validators/nil_validator_spec.rb +3 -5
  40. data/spec/app/validators/parameters_validator_spec.rb +29 -29
  41. data/spec/app/validators/password_is_strong_validator_spec.rb +17 -19
  42. data/spec/lib/metasploit/model/association/error_spec.rb +1 -3
  43. data/spec/lib/metasploit/model/association_spec.rb +8 -10
  44. data/spec/lib/metasploit/model/base_spec.rb +3 -5
  45. data/spec/lib/metasploit/model/engine_spec.rb +48 -11
  46. data/spec/lib/metasploit/model/file_spec.rb +3 -5
  47. data/spec/lib/metasploit/model/invalid_spec.rb +7 -9
  48. data/spec/lib/metasploit/model/login/status_spec.rb +1 -3
  49. data/spec/lib/metasploit/model/nilify_blanks_spec.rb +11 -13
  50. data/spec/lib/metasploit/model/realm/key_spec.rb +15 -17
  51. data/spec/lib/metasploit/model/search/association/tree_spec.rb +3 -5
  52. data/spec/lib/metasploit/model/search/association_spec.rb +2 -4
  53. data/spec/lib/metasploit/model/search/attribute_spec.rb +6 -8
  54. data/spec/lib/metasploit/model/search/operation/value/integer_spec.rb +1 -3
  55. data/spec/lib/metasploit/model/search/operation/value/string_spec.rb +1 -3
  56. data/spec/lib/metasploit/model/search/operation_spec.rb +11 -13
  57. data/spec/lib/metasploit/model/search/operator/help_spec.rb +1 -3
  58. data/spec/lib/metasploit/model/search/with_spec.rb +7 -9
  59. data/spec/lib/metasploit/model/search_spec.rb +11 -13
  60. data/spec/lib/metasploit/model/spec/error_spec.rb +2 -4
  61. data/spec/lib/metasploit/model/spec/i18n_exception_handler_spec.rb +5 -7
  62. data/spec/lib/metasploit/model/spec/pathname_collision_spec.rb +4 -6
  63. data/spec/lib/metasploit/model/spec_spec.rb +9 -7
  64. data/spec/lib/metasploit/model/translation_spec.rb +10 -12
  65. data/spec/lib/metasploit/model/version_spec.rb +3 -139
  66. data/spec/lib/metasploit/model/visitation/visit_spec.rb +28 -26
  67. data/spec/lib/metasploit/model_spec.rb +4 -0
  68. data/spec/matchers/validate_nilness_of_spec.rb +0 -2
  69. data/spec/spec_helper.rb +80 -10
  70. data/spec/support/shared/contexts/metasploit/model/search/operator/union/children.rb +1 -1
  71. data/spec/support/shared/examples/metasploit/model/search/operation/value/integer.rb +8 -8
  72. data/spec/support/shared/examples/metasploit/model/search/operation/value/string.rb +5 -5
  73. data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +18 -16
  74. data/spec/support/shared/examples/metasploit/model/translation.rb +4 -4
  75. data/spec/support/shared/examples/search/query.rb +3 -3
  76. data/spec/support/shared/examples/search_association.rb +2 -2
  77. data/spec/support/shared/examples/search_attribute.rb +3 -3
  78. data/spec/support/shared/examples/search_with.rb +3 -3
  79. metadata +43 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49d17e528f023038bfa676b470ca076cddbdeea1
4
- data.tar.gz: 2282f543d74c31809dd7a18d71db49c5183d9eb6
3
+ metadata.gz: d1968cb01611576829be9cee99731ec519c7d744
4
+ data.tar.gz: af71934474a21158825dde88a043cbd0beca3367
5
5
  SHA512:
6
- metadata.gz: 671800659174b03d7e2d3b34ed15b108ea9ef8a2a52a4b6c7fa4d3e6a759b64553ef9ed4a82f3dae3055894544ea8c7c6b35ddbd56698edb708ec9f902259824
7
- data.tar.gz: c8eb303164a1984ef76df9a9cf6c392e76af10ba256272e1d0586f3b5820b707caab1f8b23dcf3f641aac00fee046d5808df9212445f20547f6d9b35da0acfa8
6
+ metadata.gz: dc52b352a519f19121f6bd64a7703c0e2cbe9c92bf67cac3c9f1ef1bf3dd6d1f4e1a72aac3079760557b7f17e565c2d90ea0ad2a7c3ef71e9215fa090bbe93a5
7
+ data.tar.gz: 6806e8a9307caf65bacda42f348ebb83d55bf3dca0e645ecbeb6bfd9579bcbf368f8f4bda743674d91021a242b22b729ff800729b41dc67ad52362713e2078f5
data/.rspec CHANGED
@@ -1,4 +1,2 @@
1
- --backtrace
2
- --colour
3
- --drb
4
- --format documentation
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,6 @@
1
+ # Next Release
2
+
3
+ * Enhancements
4
+ * Bug Fixes
5
+ * Deprecations
6
+ * Incompatible Changes
@@ -25,19 +25,18 @@ issue tracking software.
25
25
 
26
26
  ### `PRERELEASE`
27
27
 
28
- 1. Update `PRERELEASE` to match the `SUMMARY` in the branch name. If you branched from `master`, and [version.rb](lib/metasploit/model/version.rb) does not have `PRERELEASE` defined, then adding the following lines after `PATCH`:
28
+ 1. Update `PRERELEASE` to match the `SUMMARY` in the branch name. If you branched from `master`, and [version.rb](lib/metasploit/model/version.rb) does not have `PRERELEASE` defined, then adding the following lines after `PATCH`:
29
29
  ```
30
- # The prerelease version, scoped to the {PATCH} version number.
30
+ # The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version number.
31
31
  PRERELEASE = '<SUMMARY>'
32
32
  ```
33
33
  2. `rake spec`
34
34
  3. Verify the specs pass, which indicates that `PRERELEASE` was updated correctly.
35
35
  4. Commit the change `git commit -a`
36
36
 
37
-
38
37
  ### Your changes
39
38
 
40
- Make your changes or however many commits you like, commiting each with `git commit`.
39
+ Make your changes or however many commits you like, committing each with `git commit`.
41
40
 
42
41
  ### Pre-Pull Request Testing
43
42
 
@@ -46,12 +45,12 @@ Make your changes or however many commits you like, commiting each with `git com
46
45
 
47
46
  ### Push
48
47
 
49
- Push your branch to your fork on gitub: `git push push TYPE/ISSUE/SUMMARY`
48
+ Push your branch to your fork on github: `git push TYPE/ISSUE/SUMMARY`
50
49
 
51
50
  ### Pull Request
52
51
 
53
52
  * [Create new Pull Request](https://github.com/rapid7/metasploit-model/compare/)
54
- * Add a Verification Steps comment
53
+ * Add a Verification Steps to the description comment
55
54
 
56
55
  ```
57
56
  # Verification Steps
@@ -62,6 +61,7 @@ Push your branch to your fork on gitub: `git push push TYPE/ISSUE/SUMMARY`
62
61
  - [ ] `rake spec`
63
62
  - [ ] VERIFY no failures
64
63
  ```
64
+
65
65
  You should also include at least one scenario to manually check the changes outside of specs.
66
66
 
67
67
  * Add a Post-merge Steps comment
@@ -106,7 +106,7 @@ Perform these steps prior to pushing to DESTINATION or the build will be broke o
106
106
  - [ ] Change `PRERELEASE` from `SOURCE_SUMMARY` to `DESTINATION_SUMMARY` to match the branch (DESTINATION) summary (DESTINATION_SUMMARY)
107
107
 
108
108
  ## Gem build
109
- - [ ] gem build *.gemspec
109
+ - [ ] gem build metasploit-model.gemspec
110
110
  - [ ] VERIFY the prerelease suffix has change on the gem.
111
111
 
112
112
  ## RSpec
@@ -118,45 +118,5 @@ Perform these steps prior to pushing to DESTINATION or the build will be broke o
118
118
  - [ ] `git push origin DESTINATION`
119
119
  ```
120
120
 
121
- * Add a 'Release Steps' comment
122
-
123
- The 'Release Steps' are a reminder to the reviewer of the Pull Request of how to release the gem.
124
-
125
- ```
126
- # Release
127
-
128
- Complete these steps on DESTINATION
129
-
130
- ## Version
131
-
132
- ### Compatible changes
133
-
134
- If the change are compatible with the previous branch's API, then increment [`PATCH`](lib/metasploit/model/version.rb).
135
-
136
- ### Incompatible changes
137
-
138
- If your changes are incompatible with the previous branch's API, then increment
139
- [`MINOR`](lib/metasploit/model/version.rb) and reset [`PATCH`](lib/metasploit/model/version.rb) to `0`.
140
-
141
- - [ ] Following the rules for [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html), update
142
- [`MINOR`](lib/metasploit/model/version.rb) and [`PATCH`](lib/metasploit/model/version.rb) and commit the changes.
143
-
144
- ## JRuby
145
- - [ ] `rvm use jruby@metasploit-model`
146
- - [ ] `rm Gemfile.lock`
147
- - [ ] `bundle install`
148
- - [ ] `rake release`
149
-
150
- ## MRI Ruby
151
- - [ ] `rvm use ruby-2.1@metasploit-model`
152
- - [ ] `rm Gemfile.lock`
153
- - [ ] `bundle install`
154
- - [ ] `rake release`
155
- ```
156
-
157
- ### Downstream dependencies
158
-
159
- When releasing new versions, the following projects may need to be updated:
160
-
161
- * [metasploit_data_models](https://github.com/rapid7/metasploit_data_models)
162
- * [metasploit-credential](https://github.com/rapid7/metasploit-credential)
121
+ To update the [CHANGELOG.md](CHANGELOG.md) with the merged changes or release the merged code see
122
+ [RELEASING.md](RELEASING.md)
data/Gemfile CHANGED
@@ -26,12 +26,7 @@ group :test do
26
26
  gem 'coveralls', require: false
27
27
  # Engine tasks are loaded using railtie
28
28
  gem 'railties', *rails_version_constraint
29
- gem 'rspec'
30
- # need rspec-core >= 2.14.0 because 2.14.0 introduced RSpec::Core::SharedExampleGroup::TopLevel
31
- gem 'rspec-core', '>= 2.14.0', '< 3.0.0'
32
- # need rspec-rails >= 2.12.0 as 2.12.0 adds support for redefining named subject in nested context that uses the
33
- # named subject from the outer context without causing a stack overflow.
34
- gem 'rspec-rails', '>= 2.12.0'
29
+ gem 'rspec-rails', '~> 3.1'
35
30
  # In a full rails project, factory_girl_rails would be in both the :development, and :test group, but since we only
36
31
  # want rails in :test, factory_girl_rails must also only be in :test.
37
32
  # add matchers from shoulda, such as validates_presence_of, which are useful for testing validations
@@ -0,0 +1,89 @@
1
+ # Releasing
2
+
3
+ These steps can be added to the Pull Request description's task list to remind the reviewer of how to release the
4
+ gem.
5
+
6
+ ```
7
+ # Release
8
+
9
+ Complete these steps on DESTINATION
10
+
11
+ ## [CHANGELOG.md](CHANGELOG.md)
12
+
13
+ ### Terminology
14
+
15
+ * "Enhancements" are widening the API, such as by adding new classes or methods.
16
+ * "Bug Fixes" are fixes to the implementation that do not affect the public API. If the public API is affected then
17
+ the change should be listed as both a "Bug Fix" and either an "Enhancement" or "Incompatible Change" depending on how
18
+ the bug was fixed.
19
+ * "Deprecations" are changes to the implementation that cause deprecation warnings to be issued for APIs which will be
20
+ removed in a future major release. "Deprecations" are usually accompanied by an Enhancement that creates a new API
21
+ that is meant to be used in favor of the deprecated API.
22
+ * "Incompatible Changes" are the removal of classes or methods or new required arguments or setup that shrink the API.
23
+ It is best practice to make a "Deprecation" for the API prior to its removal.
24
+
25
+ ### Task List
26
+
27
+ - [ ] Generate the list of changes since the last release: `git log v<LAST_MAJOR>.<LAST_MINOR>.<LAST_PATCH>..HEAD`
28
+ - [ ] For each commit in the release, find the corresponding PR by search for the commit on Github.
29
+ - [ ] For each PR, determine whether it is an Enhancement, Bug Fix, Deprecation, and/or Incompatible Change. A PR can
30
+ be in more than one category, in which case it should be listed in each category it belongs, but with a category
31
+ specific description of the change.
32
+ - [ ] Add an item to each category's list in the following format: `[#<PR>](https://github.com/rapid7/metasploit-model/pull/<PR>) <consumer summary> - [@<github_user>](https://github.com/<github_user>)`
33
+ `consumer_summary` should be a summary of the Enhancement, Bug Fix, Deprecation, or Incompatible Change from a
34
+ downstream consumer's of the library's perspective. `github_user` should be Github handle of the author of the
35
+ PR.
36
+ - [ ] If you added any Deprecations or Incompatible Changes, then adding upgrading information to
37
+ [UPGRADING.md](UPGRADING.md)
38
+
39
+ ## `VERSION`
40
+
41
+ The entries in the [CHANGELOG.md](CHANGELOG.md) can be used to help determine how the `VERSION` should be bumped.
42
+
43
+ ### Bug fixes
44
+
45
+ If the [CHANGELOG.md](CHANGELOG.md) contains only Bug Fixes for the Next Release, then increment
46
+ [`PATCH`](lib/metasploit/model/version.rb).
47
+
48
+ ### Compatible API changes
49
+
50
+ If the [CHANGELOG.md](CHANGELOG.md) contains any Enhancements or Deprecations, then increment
51
+ [`MINOR`](lib/metasploit/model/version.rb) and reset [`PATCH`](lib/metasploit/model/version.rb) to `0`.
52
+
53
+ ### Incompatible API changes
54
+
55
+ If the [CHANGELOG.md](CHANGELOG.md) contains any Incompatible Change, then increment
56
+ [`MAJOR`](lib/metasploit/model/version.rb) and reset [`MINOR`](lib/metasploit/model/version.rb and
57
+ [`PATCH`](lib/metasploit/model/version.rb) to `0`.
58
+
59
+ ## Setup [CHANGELOG.md](CHANGELOG.md) for next release
60
+
61
+ - [ ] Change `Next Release` section name at the top of [CHANGELOG.md](CHANGELOG.md) to match the current `VERSION`.
62
+ - [ ] Add a new `Next Release` section above the `VERSION`'s section you just renamed:
63
+ <pre>
64
+ # Next Release
65
+
66
+ * Enhancements
67
+ * Bug Fixes
68
+ * Deprecations
69
+ * Incompatible Changes
70
+ </pre>
71
+
72
+ ## Release to rubygems.org
73
+
74
+ ## jruby
75
+ - [ ] `rvm use jruby@metasploit-model`
76
+ - [ ] `rm Gemfile.lock`
77
+ - [ ] `bundle install`
78
+ - [ ] `rake release`
79
+
80
+ ## ruby-2.1
81
+ - [ ] `rvm use ruby-2.1@metasploit-model`
82
+ - [ ] `rm Gemfile.lock`
83
+ - [ ] `bundle install`
84
+ - [ ] `rake release`
85
+ ```
86
+
87
+ ### Downstream dependencies
88
+
89
+ There are currently no known downstream dependencies
@@ -0,0 +1 @@
1
+ No Deprecations or Incompatible Changes have been introduced at this time
@@ -2,20 +2,29 @@ module Metasploit
2
2
  module Model
3
3
  # Holds components of {VERSION} as defined by {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0}.
4
4
  module Version
5
+ #
6
+ # CONSTANTS
7
+ #
8
+
5
9
  # The major version number.
6
10
  MAJOR = 1
7
11
  # The minor version number, scoped to the {MAJOR} version number.
8
12
  MINOR = 0
9
- # The patch number, scoped to the {MINOR} version number.
13
+ # The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
10
14
  PATCH = 0
11
- # the prerelease identifier
12
- PRERELEASE = 'rails-4.0'
13
15
 
14
- # The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the {PRERELEASE} in the
16
+ #
17
+ # Module Methods
18
+ #
19
+
20
+ # The full version string, including the {Metasploit::Model::Version::MAJOR},
21
+ # {Metasploit::Model::Version::MINOR}, {Metasploit::Model::Version::PATCH}, and optionally, the
22
+ # `Metasploit::Model::Version::PRERELEASE` in the
15
23
  # {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
16
24
  #
17
- # @return [String] '{MAJOR}.{MINOR}.{PATCH}' on master. '{MAJOR}.{MINOR}.{PATCH}-{PRERELEASE}' on any branch
18
- # other than master.
25
+ # @return [String] '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}'
26
+ # on master. '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}-PRERELEASE'
27
+ # on any branch other than master.
19
28
  def self.full
20
29
  version = "#{MAJOR}.#{MINOR}.#{PATCH}"
21
30
 
@@ -26,20 +35,23 @@ module Metasploit
26
35
  version
27
36
  end
28
37
 
29
- # The full gem version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the {PRERELEASE} in the
38
+ # The full gem version string, including the {Metasploit::Model::Version::MAJOR},
39
+ # {Metasploit::Model::Version::MINOR}, {Metasploit::Model::Version::PATCH}, and optionally, the
40
+ # `Metasploit::Model::Version::PRERELEASE` in the
30
41
  # {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
31
42
  #
32
- # @return [String] '{MAJOR}.{MINOR}.{PATCH}' on master. '{MAJOR}.{MINOR}.{PATCH}.{PRERELEASE}' on any branch
33
- # other than master.
43
+ # @return [String] '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}'
44
+ # on master. '{Metasploit::Model::Version::MAJOR}.{Metasploit::Model::Version::MINOR}.{Metasploit::Model::Version::PATCH}.PRERELEASE'
45
+ # on any branch other than master.
34
46
  def self.gem
35
47
  full.gsub('-', '.pre.')
36
48
  end
37
49
  end
38
50
 
39
- # @see Version.gem
51
+ # (see Version.gem)
40
52
  GEM_VERSION = Version.gem
41
53
 
42
- # @see Version.full
54
+ # (see Version.full)
43
55
  VERSION = Version.full
44
56
  end
45
57
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.required_ruby_version = '>= 2.1'
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'metasploit-version', '~> 0.1.3'
22
23
  spec.add_development_dependency 'metasploit-yard', '~> 1.0'
23
24
  spec.add_development_dependency 'rake'
24
25
 
@@ -28,7 +29,8 @@ Gem::Specification.new do |spec|
28
29
 
29
30
  # Dependency loading
30
31
  rails_version_constraints = ['>= 4.0.9', '< 4.1.0']
31
-
32
+
33
+ spec.add_runtime_dependency 'activemodel', *rails_version_constraints
32
34
  spec.add_runtime_dependency 'activesupport', *rails_version_constraints
33
35
 
34
36
  spec.add_runtime_dependency 'railties', *rails_version_constraints
@@ -1,10 +1,8 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Association::Reflection do
1
+ RSpec.describe Metasploit::Model::Association::Reflection, type: :model do
4
2
  context 'validations' do
5
- it { should validate_presence_of :model }
6
- it { should validate_presence_of :name }
7
- it { should validate_presence_of :class_name }
3
+ it { is_expected.to validate_presence_of :model }
4
+ it { is_expected.to validate_presence_of :name }
5
+ it { is_expected.to validate_presence_of :class_name }
8
6
  end
9
7
 
10
8
  context '#klass' do
@@ -42,7 +40,7 @@ describe Metasploit::Model::Association::Reflection do
42
40
  end
43
41
 
44
42
  it 'should return Class with Class#name #class_name' do
45
- klass.should == class_name_class
43
+ expect(klass).to eq(class_name_class)
46
44
  end
47
45
  end
48
46
  end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Search::Group::Base do
4
- it { should ensure_length_of(:children).is_at_least(1) }
1
+ RSpec.describe Metasploit::Model::Search::Group::Base, type: :model do
2
+ it { is_expected.to ensure_length_of(:children).is_at_least(1) }
5
3
  end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Search::Group::Intersection do
4
- it { should be_a Metasploit::Model::Search::Group::Base }
1
+ RSpec.describe Metasploit::Model::Search::Group::Intersection, type: :model do
2
+ it { is_expected.to be_a Metasploit::Model::Search::Group::Base }
5
3
  end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Search::Group::Union do
4
- it { should be_a Metasploit::Model::Search::Group::Base }
1
+ RSpec.describe Metasploit::Model::Search::Group::Union, type: :model do
2
+ it { is_expected.to be_a Metasploit::Model::Search::Group::Base }
5
3
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Search::Operation::Association do
1
+ RSpec.describe Metasploit::Model::Search::Operation::Association, type: :model do
4
2
  subject(:operation) {
5
3
  described_class.new(
6
4
  source_operation: source_operation
@@ -35,7 +33,7 @@ describe Metasploit::Model::Search::Operation::Association do
35
33
  true
36
34
  }
37
35
 
38
- it { should_not include(invalid_error) }
36
+ it { is_expected.not_to include(invalid_error) }
39
37
  end
40
38
 
41
39
  context 'without valid' do
@@ -43,7 +41,7 @@ describe Metasploit::Model::Search::Operation::Association do
43
41
  false
44
42
  }
45
43
 
46
- it { should include(invalid_error) }
44
+ it { is_expected.to include(invalid_error) }
47
45
  end
48
46
  end
49
47
 
@@ -56,12 +54,12 @@ describe Metasploit::Model::Search::Operation::Association do
56
54
  nil
57
55
  }
58
56
 
59
- it { should include(blank_error) }
60
- it { should_not include(invalid_error) }
57
+ it { is_expected.to include(blank_error) }
58
+ it { is_expected.not_to include(invalid_error) }
61
59
  end
62
60
  end
63
61
  end
64
62
 
65
- it { should_not respond_to :value }
66
- it { should_not respond_to :value= }
63
+ it { is_expected.not_to respond_to :value }
64
+ it { is_expected.not_to respond_to :value= }
67
65
  end
@@ -1,13 +1,11 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Search::Operation::Base do
1
+ RSpec.describe Metasploit::Model::Search::Operation::Base, type: :model do
4
2
  subject(:operation) do
5
3
  described_class.new
6
4
  end
7
5
 
8
6
  context 'validations' do
9
7
  context 'operator' do
10
- it { should validate_presence_of(:operator) }
8
+ it { is_expected.to validate_presence_of(:operator) }
11
9
 
12
10
  context 'valid' do
13
11
  let(:errors) do
@@ -40,7 +38,7 @@ describe Metasploit::Model::Search::Operation::Base do
40
38
  end
41
39
 
42
40
  it 'should not record error on operator' do
43
- errors.should_not include(error)
41
+ expect(errors).not_to include(error)
44
42
  end
45
43
  end
46
44
 
@@ -50,7 +48,7 @@ describe Metasploit::Model::Search::Operation::Base do
50
48
  end
51
49
 
52
50
  it 'should record error on operator' do
53
- errors.should include(error)
51
+ expect(errors).to include(error)
54
52
  end
55
53
  end
56
54
  end
@@ -61,7 +59,7 @@ describe Metasploit::Model::Search::Operation::Base do
61
59
  end
62
60
 
63
61
  it 'should not record error on operator' do
64
- errors.should_not include(error)
62
+ expect(errors).not_to include(error)
65
63
  end
66
64
  end
67
65
  end