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

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Association::Error do
1
+ RSpec.describe Metasploit::Model::Association::Error do
4
2
  context '#initialize' do
5
3
  let(:attributes) do
6
4
  {
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Association do
1
+ RSpec.describe Metasploit::Model::Association do
4
2
  subject(:base_class) do
5
3
  described_class = self.described_class
6
4
 
@@ -54,7 +52,7 @@ describe Metasploit::Model::Association do
54
52
  end
55
53
 
56
54
  it 'should be class on which association was called' do
57
- model.should == base_class
55
+ expect(model).to eq(base_class)
58
56
  end
59
57
  end
60
58
 
@@ -64,7 +62,7 @@ describe Metasploit::Model::Association do
64
62
  end
65
63
 
66
64
  it 'should be name passed to association as a Symbol' do
67
- reflection_name.should == name.to_sym
65
+ expect(reflection_name).to eq(name.to_sym)
68
66
  end
69
67
  end
70
68
 
@@ -74,7 +72,7 @@ describe Metasploit::Model::Association do
74
72
  end
75
73
 
76
74
  it 'should be :class_name passed to association' do
77
- reflection_class_name.should == class_name
75
+ expect(reflection_class_name).to eq(class_name)
78
76
  end
79
77
  end
80
78
  end
@@ -87,7 +85,7 @@ describe Metasploit::Model::Association do
87
85
  end
88
86
 
89
87
  it 'should default to empty Hash' do
90
- association_by_name.should == {}
88
+ expect(association_by_name).to eq({})
91
89
  end
92
90
  end
93
91
 
@@ -119,7 +117,7 @@ describe Metasploit::Model::Association do
119
117
  end
120
118
 
121
119
  it 'should be class_name passed to association' do
122
- reflection_class_name.should == class_name
120
+ expect(reflection_class_name).to eq(class_name)
123
121
  end
124
122
  end
125
123
 
@@ -129,7 +127,7 @@ describe Metasploit::Model::Association do
129
127
  end
130
128
 
131
129
  it 'should have the reflected name' do
132
- reflection.name.should == reflected_name
130
+ expect(reflection.name).to eq(reflected_name)
133
131
  end
134
132
  end
135
133
  end
@@ -139,7 +137,7 @@ describe Metasploit::Model::Association do
139
137
  :unassociated_things
140
138
  end
141
139
 
142
- it { should be_nil }
140
+ it { is_expected.to be_nil }
143
141
  end
144
142
  end
145
143
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Base do
1
+ RSpec.describe Metasploit::Model::Base do
4
2
  subject(:base_class) do
5
3
  Class.new(described_class)
6
4
  end
@@ -12,7 +10,7 @@ describe Metasploit::Model::Base do
12
10
  it 'should use public_send to set attributes' do
13
11
  attribute = :attribute
14
12
  value = double('Value')
15
- base_class.any_instance.should_receive(:public_send).with("#{attribute}=", value)
13
+ expect_any_instance_of(base_class).to receive(:public_send).with("#{attribute}=", value)
16
14
 
17
15
  base_class.new(attribute => value)
18
16
  end
@@ -28,7 +26,7 @@ describe Metasploit::Model::Base do
28
26
  end
29
27
 
30
28
  before(:each) do
31
- base_instance.stub(:valid? => valid)
29
+ allow(base_instance).to receive(:valid?).and_return(valid)
32
30
  end
33
31
 
34
32
  context 'with valid' do
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Engine do
1
+ RSpec.describe Metasploit::Model::Engine do
4
2
  context 'config' do
5
3
  subject(:config) do
6
4
  described_class.config
@@ -21,7 +19,13 @@ describe Metasploit::Model::Engine do
21
19
  options[:factory_girl]
22
20
  end
23
21
 
24
- its([:dir]) { should == 'spec/factories' }
22
+ context 'dir' do
23
+ subject(:dir) {
24
+ factory_girl[:dir]
25
+ }
26
+
27
+ it { is_expected.to eq('spec/factories') }
28
+ end
25
29
  end
26
30
 
27
31
  context 'rails' do
@@ -29,10 +33,37 @@ describe Metasploit::Model::Engine do
29
33
  options[:rails]
30
34
  end
31
35
 
32
- its([:assets]) { should be_false }
33
- its([:fixture_replacement]) { should == :factory_girl }
34
- its([:helper]) { should be_false }
35
- its([:test_framework]) { should == :rspec }
36
+ context 'assets' do
37
+ subject(:assets) {
38
+ rails[:assets]
39
+ }
40
+
41
+ it { is_expected.to eq(false) }
42
+ end
43
+
44
+ context 'fixture_replacement' do
45
+ subject(:fixture_replacement) {
46
+ rails[:fixture_replacement]
47
+ }
48
+
49
+ it { is_expected.to eq(:factory_girl) }
50
+ end
51
+
52
+ context 'helper' do
53
+ subject(:helper) {
54
+ rails[:helper]
55
+ }
56
+
57
+ it { is_expected.to eq(false) }
58
+ end
59
+
60
+ context 'test_framework' do
61
+ subject(:test_framework) {
62
+ rails[:test_framework]
63
+ }
64
+
65
+ it { is_expected.to eq(:rspec) }
66
+ end
36
67
  end
37
68
 
38
69
  context 'rspec' do
@@ -40,7 +71,13 @@ describe Metasploit::Model::Engine do
40
71
  options[:rspec]
41
72
  end
42
73
 
43
- its([:fixture]) { should be_false }
74
+ context 'fixture' do
75
+ subject(:fixture) {
76
+ rspec[:fixture]
77
+ }
78
+
79
+ it { is_expected.to eq(false) }
80
+ end
44
81
  end
45
82
  end
46
83
  end
@@ -61,7 +98,7 @@ describe Metasploit::Model::Engine do
61
98
  end
62
99
 
63
100
  it 'should run after factory_girl.set_factory_paths' do
64
- initializer.after.should == 'factory_girl.set_factory_paths'
101
+ expect(initializer.after).to eq('factory_girl.set_factory_paths')
65
102
  end
66
103
 
67
104
  context 'running' do
@@ -73,7 +110,7 @@ describe Metasploit::Model::Engine do
73
110
  it 'should prepend full path to spec/factories to FactoryGirl.definition_file_paths' do
74
111
  definition_file_path = Metasploit::Model::Engine.root.join('spec', 'factories')
75
112
 
76
- FactoryGirl.definition_file_paths.should_receive(:unshift).with(definition_file_path)
113
+ expect(FactoryGirl.definition_file_paths).to receive(:unshift).with(definition_file_path)
77
114
 
78
115
  run
79
116
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::File do
1
+ RSpec.describe Metasploit::Model::File do
4
2
  unless RUBY_PLATFORM =~ /java/ && Gem::Version.new(JRUBY_VERSION) < Gem::Version.new('1.7.14')
5
3
  it 'aliases ::File' do
6
4
  expect(described_class).to equal(::File)
@@ -38,12 +36,12 @@ describe Metasploit::Model::File do
38
36
 
39
37
  if RUBY_PLATFORM =~ /java/ && Gem::Version.new(JRUBY_VERSION) < Gem::Version.new('1.7.14')
40
38
  it 'should be necessary because File.realpath does not resolve symlinks' do
41
- File.realpath(symlink_pathname.to_path).should_not == real_pathname.to_path
39
+ expect(File.realpath(symlink_pathname.to_path)).not_to eq(real_pathname.to_path)
42
40
  end
43
41
  end
44
42
 
45
43
  it 'should resolve symlink to real (canonical) path' do
46
- realpath.should == real_pathname.to_path
44
+ expect(realpath).to eq(real_pathname.to_path)
47
45
  end
48
46
  end
49
47
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Invalid do
1
+ RSpec.describe Metasploit::Model::Invalid do
4
2
  subject(:invalid) do
5
3
  described_class.new(model)
6
4
  end
@@ -15,16 +13,16 @@ describe Metasploit::Model::Invalid do
15
13
  end
16
14
  end
17
15
 
18
- it { should be_a Metasploit::Model::Error }
16
+ it { is_expected.to be_a Metasploit::Model::Error }
19
17
 
20
18
  it 'should use ActiveModel::Errors#full_messages' do
21
- model.errors.should_receive(:full_messages).and_call_original
19
+ expect(model.errors).to receive(:full_messages).and_call_original
22
20
 
23
21
  described_class.new(model)
24
22
  end
25
23
 
26
24
  it 'should translate errors using metasploit.model.invalid' do
27
- I18n.should_receive(:translate).with(
25
+ expect(I18n).to receive(:translate).with(
28
26
  'metasploit.model.errors.messages.model_invalid',
29
27
  hash_including(
30
28
  :errors => anything
@@ -36,10 +34,10 @@ describe Metasploit::Model::Invalid do
36
34
 
37
35
  it 'should set translated errors as message' do
38
36
  message = "translated message"
39
- I18n.stub(:translate).with('metasploit.model.errors.messages.model_invalid', anything).and_return(message)
37
+ allow(I18n).to receive(:translate).with('metasploit.model.errors.messages.model_invalid', anything).and_return(message)
40
38
  instance = described_class.new(model)
41
39
 
42
- instance.message.should == message
40
+ expect(instance.message).to eq(message)
43
41
  end
44
42
 
45
43
  context '#model' do
@@ -48,7 +46,7 @@ describe Metasploit::Model::Invalid do
48
46
  end
49
47
 
50
48
  it 'should be the passed in model' do
51
- error_model.should == model
49
+ expect(error_model).to eq(model)
52
50
  end
53
51
  end
54
52
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Login::Status do
1
+ RSpec.describe Metasploit::Model::Login::Status do
4
2
  context 'CONSTANTS' do
5
3
  context 'ALL' do
6
4
  subject(:all) {
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::NilifyBlanks do
1
+ RSpec.describe Metasploit::Model::NilifyBlanks do
4
2
  let(:base_class) do
5
3
  # capture for class_eval scope
6
4
  described_class = self.described_class
@@ -24,7 +22,7 @@ describe Metasploit::Model::NilifyBlanks do
24
22
  end
25
23
 
26
24
  it 'should register #nilify_blanks as a before validation callback' do
27
- base_class.should_receive(:before_validation).with(:nilify_blanks)
25
+ expect(base_class).to receive(:before_validation).with(:nilify_blanks)
28
26
 
29
27
  # capture for class_eval scope
30
28
  described_class = self.described_class
@@ -39,10 +37,10 @@ describe Metasploit::Model::NilifyBlanks do
39
37
  it 'should support adding multiple attributes' do
40
38
  attributes = [:a, :b]
41
39
 
42
- base_class.nilify_blank *attributes
40
+ base_class.nilify_blank(*attributes)
43
41
 
44
42
  attributes.each do |attribute|
45
- base_class.nilify_blank_attribute_set.should include(attribute)
43
+ expect(base_class.nilify_blank_attribute_set).to include(attribute)
46
44
  end
47
45
  end
48
46
 
@@ -52,7 +50,7 @@ describe Metasploit::Model::NilifyBlanks do
52
50
  base_class.nilify_blank attribute
53
51
  base_class.nilify_blank attribute
54
52
 
55
- base_class.nilify_blank_attribute_set.length.should == 1
53
+ expect(base_class.nilify_blank_attribute_set.length).to eq(1)
56
54
  end
57
55
  end
58
56
 
@@ -90,14 +88,14 @@ describe Metasploit::Model::NilifyBlanks do
90
88
  end
91
89
 
92
90
  it 'should check if value responds to blank?' do
93
- value.should_receive(:respond_to?).with(:blank?)
91
+ expect(value).to receive(:respond_to?).with(:blank?)
94
92
 
95
93
  nilify_blanks
96
94
  end
97
95
 
98
96
  context 'with value responds to blank?' do
99
97
  it 'should call blank?' do
100
- value.should_receive(:blank?)
98
+ expect(value).to receive(:blank?)
101
99
 
102
100
  nilify_blanks
103
101
  end
@@ -110,7 +108,7 @@ describe Metasploit::Model::NilifyBlanks do
110
108
  it 'should set attribute to nil' do
111
109
  nilify_blanks
112
110
 
113
- base_instance.blank.should be_nil
111
+ expect(base_instance.blank).to be_nil
114
112
  end
115
113
  end
116
114
 
@@ -133,11 +131,11 @@ describe Metasploit::Model::NilifyBlanks do
133
131
  end
134
132
 
135
133
  before(:each) do
136
- value.stub(:respond_to?).with(:blank?).and_return(false)
134
+ allow(value).to receive(:respond_to?).with(:blank?).and_return(false)
137
135
  end
138
136
 
139
137
  it 'should not call blank?' do
140
- value.should_not_receive(:blank?)
138
+ expect(value).not_to receive(:blank?)
141
139
 
142
140
  nilify_blanks
143
141
  end
@@ -150,7 +148,7 @@ describe Metasploit::Model::NilifyBlanks do
150
148
  end
151
149
 
152
150
  it 'should default to an empty Set' do
153
- nilify_blank_attribute_set.should == Set.new
151
+ expect(nilify_blank_attribute_set).to eq(Set.new)
154
152
  end
155
153
  end
156
154
  end
@@ -1,14 +1,12 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Realm::Key do
1
+ RSpec.describe Metasploit::Model::Realm::Key do
4
2
  context 'CONSTANTS' do
5
3
  context 'ACTIVE_DIRECTORY_DOMAIN' do
6
4
  subject(:active_directory_domain) do
7
5
  described_class::ACTIVE_DIRECTORY_DOMAIN
8
6
  end
9
7
 
10
- it { should == 'Active Directory Domain' }
11
- it { should be_in described_class::ALL }
8
+ it { is_expected.to eq('Active Directory Domain') }
9
+ it { is_expected.to be_in described_class::ALL }
12
10
  end
13
11
 
14
12
  context 'ALL' do
@@ -16,10 +14,10 @@ describe Metasploit::Model::Realm::Key do
16
14
  described_class::ALL
17
15
  end
18
16
 
19
- it { should include described_class::ACTIVE_DIRECTORY_DOMAIN }
20
- it { should include described_class::ORACLE_SYSTEM_IDENTIFIER }
21
- it { should include described_class::POSTGRESQL_DATABASE }
22
- it { should include described_class::WILDCARD }
17
+ it { is_expected.to include described_class::ACTIVE_DIRECTORY_DOMAIN }
18
+ it { is_expected.to include described_class::ORACLE_SYSTEM_IDENTIFIER }
19
+ it { is_expected.to include described_class::POSTGRESQL_DATABASE }
20
+ it { is_expected.to include described_class::WILDCARD }
23
21
  end
24
22
 
25
23
  context 'ORACLE_SYSTEM_IDENTIFIER' do
@@ -27,8 +25,8 @@ describe Metasploit::Model::Realm::Key do
27
25
  described_class::ORACLE_SYSTEM_IDENTIFIER
28
26
  end
29
27
 
30
- it { should == 'Oracle System Identifier' }
31
- it { should be_in described_class::ALL }
28
+ it { is_expected.to eq('Oracle System Identifier') }
29
+ it { is_expected.to be_in described_class::ALL }
32
30
  end
33
31
 
34
32
  context 'POSTGRESQL DATABASE' do
@@ -36,8 +34,8 @@ describe Metasploit::Model::Realm::Key do
36
34
  described_class::POSTGRESQL_DATABASE
37
35
  end
38
36
 
39
- it { should == 'PostgreSQL Database' }
40
- it { should be_in described_class::ALL }
37
+ it { is_expected.to eq('PostgreSQL Database') }
38
+ it { is_expected.to be_in described_class::ALL }
41
39
  end
42
40
 
43
41
  context 'WILDCARD' do
@@ -45,20 +43,20 @@ describe Metasploit::Model::Realm::Key do
45
43
  described_class::WILDCARD
46
44
  end
47
45
 
48
- it { should == '*' }
49
- it { should be_in described_class::ALL }
46
+ it { is_expected.to eq('*') }
47
+ it { is_expected.to be_in described_class::ALL }
50
48
  end
51
49
 
52
50
  context 'SHORT_NAMES' do
53
51
  subject { described_class::SHORT_NAMES }
54
52
  it 'should have String keys' do
55
53
  subject.keys.each { |key|
56
- key.should be_a(String)
54
+ expect(key).to be_a(String)
57
55
  }
58
56
  end
59
57
  context 'values' do
60
58
  subject { described_class::SHORT_NAMES.values.sort }
61
- it { should match_array(described_class::ALL.sort) }
59
+ it { is_expected.to match_array(described_class::ALL.sort) }
62
60
  end
63
61
  end
64
62
  end
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe Metasploit::Model::Association::Tree do
1
+ RSpec.describe Metasploit::Model::Association::Tree do
4
2
  context 'expand' do
5
3
  subject(:expand) {
6
4
  described_class.expand(associations)
@@ -99,7 +97,7 @@ describe Metasploit::Model::Association::Tree do
99
97
  nil
100
98
  }
101
99
 
102
- it { should be_nil }
100
+ it { is_expected.to be_nil }
103
101
  end
104
102
 
105
103
  context 'without nil' do
@@ -311,7 +309,7 @@ describe Metasploit::Model::Association::Tree do
311
309
  nil
312
310
  }
313
311
 
314
- it { should == [] }
312
+ it { is_expected.to eq([]) }
315
313
  end
316
314
  end
317
315