nugrant 2.0.0.dev2 → 2.0.0.pre1
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.
- checksums.yaml +6 -14
- data/.gitignore +2 -1
- data/.travis.yml +2 -2
- data/CHANGELOG.md +148 -3
- data/Gemfile +8 -20
- data/README.md +266 -72
- data/Rakefile +1 -0
- data/lib/nugrant.rb +14 -6
- data/lib/nugrant/bag.rb +116 -62
- data/lib/nugrant/helper/bag.rb +19 -19
- data/lib/nugrant/helper/env/exporter.rb +208 -0
- data/lib/nugrant/helper/env/namer.rb +47 -0
- data/lib/nugrant/helper/parameters.rb +12 -0
- data/lib/nugrant/helper/stack.rb +86 -0
- data/lib/nugrant/mixin/parameters.rb +98 -0
- data/lib/nugrant/parameters.rb +14 -68
- data/lib/nugrant/vagrant/errors.rb +27 -0
- data/lib/nugrant/vagrant/v2/command/env.rb +101 -0
- data/lib/nugrant/vagrant/v2/command/helper.rb +30 -0
- data/lib/nugrant/vagrant/v2/command/parameters.rb +16 -4
- data/lib/nugrant/vagrant/v2/command/restricted_keys.rb +60 -0
- data/lib/nugrant/vagrant/v2/command/root.rb +12 -2
- data/lib/nugrant/vagrant/v2/config/user.rb +9 -21
- data/lib/nugrant/vagrant/v2/plugin.rb +0 -1
- data/lib/nugrant/version.rb +1 -1
- data/locales/en.yml +13 -0
- data/nugrant.gemspec +3 -7
- data/test/lib/nugrant/helper/env/test_exporter.rb +238 -0
- data/test/lib/nugrant/helper/test_bag.rb +16 -0
- data/test/lib/nugrant/helper/test_parameters.rb +17 -0
- data/test/lib/nugrant/helper/test_stack.rb +152 -0
- data/test/lib/nugrant/test_bag.rb +132 -22
- data/test/lib/nugrant/test_config.rb +95 -92
- data/test/lib/nugrant/test_parameters.rb +232 -177
- data/test/lib/test_helper.rb +3 -0
- data/test/resources/json/params_user_nil_values.json +9 -0
- data/test/resources/vagrantfiles/v2.defaults_mixed_string_symbols +18 -0
- data/test/resources/vagrantfiles/v2.defaults_null_values_in_vagrantuser +23 -0
- data/test/resources/vagrantfiles/v2.defaults_using_string +18 -0
- data/test/resources/vagrantfiles/v2.defaults_using_symbol +18 -0
- data/test/resources/{Vagrantfile.v2.empty → vagrantfiles/v2.empty} +0 -2
- data/test/resources/{Vagrantfile.v2.fake → vagrantfiles/v2.fake} +4 -3
- data/test/resources/vagrantfiles/v2.missing_parameter +3 -0
- data/test/resources/{Vagrantfile.v2.real → vagrantfiles/v2.real} +0 -2
- data/test/resources/yaml/params_user_nil_values.yml +5 -0
- metadata +55 -88
- data/lib/nugrant/vagrant/v1/command/parameters.rb +0 -134
- data/lib/nugrant/vagrant/v1/command/root.rb +0 -81
- data/lib/nugrant/vagrant/v1/config/user.rb +0 -37
- data/lib/nugrant/vagrant/v1/plugin.rb +0 -6
- data/lib/vagrant_init.rb +0 -2
- data/test/resources/Vagrantfile.v1.empty +0 -2
- data/test/resources/Vagrantfile.v1.fake +0 -10
- data/test/resources/Vagrantfile.v1.real +0 -19
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require 'nugrant/helper/bag'
|
4
|
+
|
5
|
+
module Nugrant
|
6
|
+
module Helper
|
7
|
+
class TestBag < ::Minitest::Test
|
8
|
+
def test_restricted_keys_contains_hash_ones
|
9
|
+
keys = Helper::Bag.restricted_keys()
|
10
|
+
Hash.instance_methods.each do |method|
|
11
|
+
assert_includes(keys, method, "Restricted keys must include Hash method #{method}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require 'nugrant/bag'
|
4
|
+
require 'nugrant/helper/parameters'
|
5
|
+
|
6
|
+
module Nugrant
|
7
|
+
module Helper
|
8
|
+
class TestParameters < ::Minitest::Test
|
9
|
+
def test_restricted_keys_contains_hash_ones
|
10
|
+
keys = Helper::Parameters.restricted_keys()
|
11
|
+
Nugrant::Bag.instance_methods.each do |method|
|
12
|
+
assert_includes(keys, method, "Restricted keys must include Nugrant::Bag method #{method}")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require 'nugrant/helper/stack'
|
4
|
+
|
5
|
+
module Nugrant
|
6
|
+
module Helper
|
7
|
+
class TestStack < ::Minitest::Test
|
8
|
+
def create_stack(options = {})
|
9
|
+
pattern = options[:pattern] || "Vagrantfile:%s"
|
10
|
+
count = options[:count] || 4
|
11
|
+
|
12
|
+
stack = []
|
13
|
+
(0..count).each do |index|
|
14
|
+
stack << pattern.gsub("%s", index.to_s())
|
15
|
+
end
|
16
|
+
|
17
|
+
stack
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_location(name, line)
|
21
|
+
resource_path = File.expand_path("#{File.dirname(__FILE__)}/../../../resources/vagrantfiles")
|
22
|
+
|
23
|
+
{:file => "#{resource_path}/#{name}", :line => line}
|
24
|
+
end
|
25
|
+
|
26
|
+
def assert_error_location(expected, entry, matcher = nil)
|
27
|
+
assert_equal(expected, Stack::extract_error_location(entry, :matcher => matcher), "Not exact error location")
|
28
|
+
end
|
29
|
+
|
30
|
+
def assert_error_region(expected, region)
|
31
|
+
expected_lines = expected.split("\n")
|
32
|
+
region_lines = region.split("\n")
|
33
|
+
|
34
|
+
expected_count = expected_lines.length()
|
35
|
+
actual_count = region_lines.length()
|
36
|
+
|
37
|
+
assert_equal(expected_count, actual_count, "Region different line count")
|
38
|
+
|
39
|
+
expected_lines.each_with_index do |expected_line, index|
|
40
|
+
assert_equal(expected_line.strip(), region_lines[index].strip(), "Line ##{index} are not equals")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_fetch_error_region_from_location()
|
45
|
+
location = create_location("v2.defaults_using_symbol", 4)
|
46
|
+
error_region = Stack::fetch_error_region_from_location(location)
|
47
|
+
expected_region = <<-EOT
|
48
|
+
1: Vagrant.configure("2") do |config|
|
49
|
+
2: config.user.defaults = {
|
50
|
+
3: :single => 1,
|
51
|
+
4:>> :local => {
|
52
|
+
5: :first => "value1",
|
53
|
+
6: :second => "value2"
|
54
|
+
7: }
|
55
|
+
8: }
|
56
|
+
EOT
|
57
|
+
|
58
|
+
assert_error_region(expected_region, error_region)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_fetch_error_region_from_location_custom_prefix()
|
62
|
+
location = create_location("v2.defaults_using_symbol", 4)
|
63
|
+
error_region = Stack::fetch_error_region_from_location(location, :prefix => "**")
|
64
|
+
expected_region = <<-EOT
|
65
|
+
**1: Vagrant.configure(\"2\") do |config|
|
66
|
+
**2: config.user.defaults = {
|
67
|
+
**3: :single => 1,
|
68
|
+
**4:>> :local => {
|
69
|
+
**5: :first => "value1",
|
70
|
+
**6: :second => "value2"
|
71
|
+
**7: }
|
72
|
+
**8: }
|
73
|
+
EOT
|
74
|
+
|
75
|
+
assert_error_region(expected_region, error_region)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_fetch_error_region_from_location_custom_width()
|
79
|
+
location = create_location("v2.defaults_using_symbol", 4)
|
80
|
+
error_region = Stack::fetch_error_region_from_location(location, :width => 2)
|
81
|
+
expected_region = <<-EOT
|
82
|
+
2: config.user.defaults = {
|
83
|
+
3: :single => 1,
|
84
|
+
4:>> :local => {
|
85
|
+
5: :first => "value1",
|
86
|
+
6: :second => "value2"
|
87
|
+
EOT
|
88
|
+
|
89
|
+
assert_error_region(expected_region, error_region)
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_fetch_error_region_from_location_wrong_location()
|
93
|
+
location = {:file => nil, :line => nil}
|
94
|
+
assert_equal("Unknown", Stack::fetch_error_region_from_location(location))
|
95
|
+
assert_equal("Failed", Stack::fetch_error_region_from_location(location, :unknown => "Failed"))
|
96
|
+
|
97
|
+
location = {:file => "Vagrantfile", :line => nil}
|
98
|
+
assert_equal("Vagrantfile", Stack::fetch_error_region_from_location(location))
|
99
|
+
|
100
|
+
location = {:file => "NonExistingVagrantfile", :line => 4}
|
101
|
+
assert_equal("NonExistingVagrantfile:4", Stack::fetch_error_region_from_location(location))
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_find_entry()
|
105
|
+
entries = ["First", "Second:", "Third:a", "Fourth:4"]
|
106
|
+
|
107
|
+
assert_equal("Fourth:4", Stack::find_entry(entries))
|
108
|
+
assert_equal("Third:a", Stack::find_entry(entries, :matcher => /^(.+):([a-z]+)/))
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_extract_error_location_default_matcher()
|
112
|
+
# Matches
|
113
|
+
assert_error_location({:file => "/work/irb/workspace.rb", :line => 80}, "/work/irb/workspace.rb:80:in `eval'")
|
114
|
+
assert_error_location({:file => "workspace.rb", :line => 80}, "workspace.rb:80:in `eval'")
|
115
|
+
assert_error_location({:file => "/work/irb/workspace.rb", :line => 80}, "/work/irb/workspace.rb:80")
|
116
|
+
|
117
|
+
# No match
|
118
|
+
assert_error_location({:file => nil, :line => nil}, "/work/irb/workspace.rb?80")
|
119
|
+
assert_error_location({:file => nil, :line => nil}, "/work/irb/workspace.rb")
|
120
|
+
assert_error_location({:file =>nil, :line => nil}, "")
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_extract_error_location_custom_matcher()
|
124
|
+
# Matches
|
125
|
+
assert_error_location(
|
126
|
+
{:file => "/work/Vagrantfile", :line => 80},
|
127
|
+
"/work/Vagrantfile:80:in `eval'",
|
128
|
+
/(.*Vagrantfile):([0-9]+)/
|
129
|
+
)
|
130
|
+
|
131
|
+
assert_error_location(
|
132
|
+
{:file => "Vagrantfile", :line => 80},
|
133
|
+
"Vagrantfile:80:in `eval'",
|
134
|
+
/(.*Vagrantfile):([0-9]+)/
|
135
|
+
)
|
136
|
+
|
137
|
+
assert_error_location(
|
138
|
+
{:file => "/work/irb/Vagrantfile", :line => 80},
|
139
|
+
"/work/irb/Vagrantfile:80",
|
140
|
+
/(.*Vagrantfile):([0-9]+)/
|
141
|
+
)
|
142
|
+
|
143
|
+
# Partial match
|
144
|
+
assert_error_location(
|
145
|
+
{:file => "/work/Vagrantfile", :line => nil},
|
146
|
+
"/work/Vagrantfile:80:in `eval'",
|
147
|
+
/(.*Vagrantfile)/
|
148
|
+
)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -1,25 +1,36 @@
|
|
1
|
-
require '
|
1
|
+
require 'minitest/autorun'
|
2
2
|
|
3
3
|
require 'nugrant/bag'
|
4
|
+
require 'nugrant/helper/bag'
|
4
5
|
|
5
6
|
module Nugrant
|
6
|
-
class TestBag <
|
7
|
-
def create_bag(
|
8
|
-
return Bag.new(
|
7
|
+
class TestBag < ::Minitest::Test
|
8
|
+
def create_bag(elements, options = {})
|
9
|
+
return Bag.new(elements, options)
|
9
10
|
end
|
10
11
|
|
11
|
-
def
|
12
|
+
def assert_all_access_equal(expected, bag, key)
|
13
|
+
assert_equal(expected, bag.method_missing(key.to_sym), "bag.#{key.to_sym}")
|
14
|
+
assert_equal(expected, bag[key.to_s], "bag[#{key.to_s}]")
|
15
|
+
assert_equal(expected, bag[key.to_sym], "bag[#{key.to_sym}]")
|
16
|
+
end
|
17
|
+
|
18
|
+
def assert_all_access_bag(expected, bag, key)
|
19
|
+
assert_bag(expected, bag.method_missing(key.to_sym))
|
20
|
+
assert_bag(expected, bag[key.to_s])
|
21
|
+
assert_bag(expected, bag[key.to_sym])
|
22
|
+
end
|
23
|
+
|
24
|
+
def assert_bag(expected, bag)
|
12
25
|
assert_kind_of(Bag, bag)
|
13
26
|
|
14
|
-
|
15
|
-
if not
|
16
|
-
|
17
|
-
assert_equal(value, bag[key])
|
27
|
+
expected.each do |key, expected_value|
|
28
|
+
if not expected_value.kind_of?(Hash)
|
29
|
+
assert_all_access_equal(expected_value, bag, key)
|
18
30
|
next
|
19
31
|
end
|
20
32
|
|
21
|
-
|
22
|
-
assert_bag(value, bag[key])
|
33
|
+
assert_all_access_bag(expected_value, bag, key)
|
23
34
|
end
|
24
35
|
end
|
25
36
|
|
@@ -74,22 +85,26 @@ module Nugrant
|
|
74
85
|
def test_undefined_value()
|
75
86
|
bag = create_bag({:value => "one"})
|
76
87
|
|
77
|
-
|
88
|
+
assert_raises(KeyError) do
|
78
89
|
bag.invalid_value
|
79
90
|
end
|
80
91
|
|
81
|
-
|
92
|
+
assert_raises(KeyError) do
|
82
93
|
bag["invalid_value"]
|
83
94
|
end
|
95
|
+
|
96
|
+
assert_raises(KeyError) do
|
97
|
+
bag[:invalid_value]
|
98
|
+
end
|
84
99
|
end
|
85
100
|
|
86
101
|
def test_to_hash()
|
87
|
-
hash = create_bag({}).
|
102
|
+
hash = create_bag({}).to_hash()
|
88
103
|
|
89
104
|
assert_kind_of(Hash, hash)
|
90
105
|
assert_equal({}, hash)
|
91
106
|
|
92
|
-
hash = create_bag({
|
107
|
+
hash = create_bag({"value" => {:one => "value", "two" => "value"}}).to_hash()
|
93
108
|
|
94
109
|
assert_kind_of(Hash, hash)
|
95
110
|
assert_kind_of(Hash, hash[:value])
|
@@ -98,20 +113,115 @@ module Nugrant
|
|
98
113
|
assert_equal({:value => {:one => "value", :two => "value"}}, hash)
|
99
114
|
end
|
100
115
|
|
101
|
-
def
|
102
|
-
|
116
|
+
def test_merge_array_replace()
|
117
|
+
# Replace should be the default case
|
118
|
+
bag1 = create_bag({"first" => [1, 2]})
|
119
|
+
bag2 = create_bag({:first => [2, 3]})
|
120
|
+
|
121
|
+
bag1.merge!(bag2);
|
122
|
+
|
123
|
+
assert_equal({:first => [2, 3]}, bag1.to_hash())
|
124
|
+
|
125
|
+
bag1 = create_bag({"first" => [1, 2]})
|
126
|
+
bag2 = create_bag({:first => "string"})
|
127
|
+
|
128
|
+
bag1.merge!(bag2);
|
129
|
+
|
130
|
+
assert_equal({:first => "string"}, bag1.to_hash())
|
131
|
+
end
|
132
|
+
|
133
|
+
def test_merge_array_extend()
|
134
|
+
bag1 = create_bag({"first" => [1, 2]})
|
103
135
|
bag2 = create_bag({:first => [2, 3]})
|
104
136
|
|
105
|
-
bag1.
|
137
|
+
bag1.merge!(bag2, :array_strategy => :extend);
|
106
138
|
|
107
|
-
assert_equal({:first => [1, 2, 3]}, bag1.
|
139
|
+
assert_equal({:first => [1, 2, 3]}, bag1.to_hash())
|
108
140
|
|
109
|
-
bag1 = create_bag({
|
141
|
+
bag1 = create_bag({"first" => [1, 2]})
|
110
142
|
bag2 = create_bag({:first => "string"})
|
111
143
|
|
112
|
-
bag1.
|
144
|
+
bag1.merge!(bag2, :array_strategy => :extend);
|
145
|
+
|
146
|
+
assert_equal({:first => "string"}, bag1.to_hash())
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_merge_array_concat()
|
150
|
+
bag1 = create_bag({"first" => [1, 2]})
|
151
|
+
bag2 = create_bag({:first => [2, 3]})
|
152
|
+
|
153
|
+
bag1.merge!(bag2, :array_strategy => :concat);
|
154
|
+
|
155
|
+
assert_equal({:first => [1, 2, 2, 3]}, bag1.to_hash())
|
156
|
+
|
157
|
+
bag1 = create_bag({"first" => [1, 2]})
|
158
|
+
bag2 = create_bag({:first => "string"})
|
159
|
+
|
160
|
+
bag1.merge!(bag2, :array_strategy => :concat);
|
161
|
+
|
162
|
+
assert_equal({:first => "string"}, bag1.to_hash())
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_nil_key()
|
166
|
+
assert_raises(ArgumentError) do
|
167
|
+
create_bag({nil => "value"})
|
168
|
+
end
|
169
|
+
|
170
|
+
parameters = create_bag({})
|
171
|
+
|
172
|
+
assert_raises(ArgumentError) do
|
173
|
+
parameters[nil] = 1
|
174
|
+
end
|
175
|
+
|
176
|
+
assert_raises(ArgumentError) do
|
177
|
+
parameters[nil]
|
178
|
+
end
|
179
|
+
|
180
|
+
assert_raises(ArgumentError) do
|
181
|
+
parameters.method_missing(nil)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_restricted_keys_are_still_accessible
|
186
|
+
keys = Helper::Bag.restricted_keys()
|
187
|
+
bag = create_bag(Hash[
|
188
|
+
keys.map do |key|
|
189
|
+
[key, "#{key.to_s} - value"]
|
190
|
+
end
|
191
|
+
])
|
192
|
+
|
193
|
+
keys.each do |key|
|
194
|
+
assert_equal("#{key.to_s} - value", bag[key.to_s], "bag[#{key.to_s}]")
|
195
|
+
assert_equal("#{key.to_s} - value", bag[key.to_sym], "bag[#{key.to_sym}]")
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_custom_key_error_handler
|
200
|
+
bag = create_bag({:value => "one"}, :key_error => Proc.new do |key|
|
201
|
+
raise IndexError
|
202
|
+
end)
|
203
|
+
|
204
|
+
assert_raises(IndexError) do
|
205
|
+
bag.invalid_value
|
206
|
+
end
|
207
|
+
|
208
|
+
assert_raises(IndexError) do
|
209
|
+
bag["invalid_value"]
|
210
|
+
end
|
211
|
+
|
212
|
+
assert_raises(IndexError) do
|
213
|
+
bag[:invalid_value]
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
def test_custom_key_error_handler_returns_value
|
218
|
+
bag = create_bag({:value => "one"}, :key_error => Proc.new do |key|
|
219
|
+
"Some value"
|
220
|
+
end)
|
113
221
|
|
114
|
-
assert_equal(
|
222
|
+
assert_equal("Some value", bag.invalid_value)
|
223
|
+
assert_equal("Some value", bag["invalid_value"])
|
224
|
+
assert_equal("Some value", bag[:invalid_value])
|
115
225
|
end
|
116
226
|
end
|
117
227
|
end
|
@@ -1,120 +1,123 @@
|
|
1
|
-
require '
|
2
|
-
require 'test/unit'
|
1
|
+
require 'minitest/autorun'
|
3
2
|
require 'tmpdir'
|
4
3
|
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@default_param_filename = Nugrant::Config::DEFAULT_PARAMS_FILENAME
|
4
|
+
require 'nugrant/config'
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
module Nugrant
|
7
|
+
class TestConfig < ::Minitest::Test
|
8
|
+
def setup
|
9
|
+
@default_param_filename = Nugrant::Config::DEFAULT_PARAMS_FILENAME
|
12
10
|
|
13
|
-
|
11
|
+
@old_working_dir = Dir.getwd()
|
12
|
+
@user_dir = Nugrant::Config.default_user_path()
|
13
|
+
@system_dir = Nugrant::Config.default_system_path()
|
14
14
|
|
15
|
-
|
16
|
-
end
|
15
|
+
Dir.chdir(Dir.tmpdir())
|
17
16
|
|
18
|
-
|
19
|
-
|
17
|
+
@current_dir = Dir.getwd()
|
18
|
+
end
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
@user_dir = nil
|
24
|
-
@system_dir = nil
|
25
|
-
end
|
20
|
+
def teardown
|
21
|
+
Dir.chdir(@old_working_dir)
|
26
22
|
|
27
|
-
|
28
|
-
|
23
|
+
@old_working_dir = nil
|
24
|
+
@current_dir = nil
|
25
|
+
@user_dir = nil
|
26
|
+
@system_dir = nil
|
27
|
+
end
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
assert_equal("#{@user_dir}/#{@default_param_filename}", config.user_path())
|
33
|
-
assert_equal("#{@system_dir}/#{@default_param_filename}", config.system_path())
|
34
|
-
end
|
29
|
+
def test_default_values
|
30
|
+
config = Nugrant::Config.new()
|
35
31
|
|
36
|
-
|
37
|
-
|
32
|
+
assert_equal(@default_param_filename, config.params_filename())
|
33
|
+
assert_equal("#{@current_dir}/#{@default_param_filename}", config.current_path())
|
34
|
+
assert_equal("#{@user_dir}/#{@default_param_filename}", config.user_path())
|
35
|
+
assert_equal("#{@system_dir}/#{@default_param_filename}", config.system_path())
|
36
|
+
end
|
38
37
|
|
39
|
-
|
40
|
-
|
41
|
-
assert_equal("#{@user_dir}/.customparams", config.user_path())
|
42
|
-
assert_equal("#{@system_dir}/.customparams", config.system_path())
|
43
|
-
end
|
38
|
+
def test_custom_params_filename
|
39
|
+
config = Nugrant::Config.new({:params_filename => ".customparams"})
|
44
40
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
41
|
+
assert_equal(".customparams", config.params_filename())
|
42
|
+
assert_equal("#{@current_dir}/.customparams", config.current_path())
|
43
|
+
assert_equal("#{@user_dir}/.customparams", config.user_path())
|
44
|
+
assert_equal("#{@system_dir}/.customparams", config.system_path())
|
45
|
+
end
|
50
46
|
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
def test_custom_current_path
|
48
|
+
config = Nugrant::Config.new({
|
49
|
+
:params_filename => ".customparams",
|
50
|
+
:current_path => "#{@user_dir}/.currentcustomparams"
|
51
|
+
})
|
54
52
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
:user_path => "#{@system_dir}/.usercustomparams"
|
59
|
-
})
|
53
|
+
assert_equal(".customparams", config.params_filename())
|
54
|
+
assert_equal("#{@user_dir}/.currentcustomparams", config.current_path())
|
55
|
+
end
|
60
56
|
|
61
|
-
|
62
|
-
|
57
|
+
def test_custom_user_path
|
58
|
+
config = Nugrant::Config.new({
|
59
|
+
:params_filename => ".customparams",
|
60
|
+
:user_path => "#{@system_dir}/.usercustomparams"
|
61
|
+
})
|
63
62
|
|
64
|
-
|
65
|
-
|
66
|
-
:params_filename => ".customparams",
|
67
|
-
:system_path => "#{@current_dir}/.systemcustomparams"
|
68
|
-
})
|
63
|
+
assert_equal(".customparams", config.params_filename())
|
64
|
+
assert_equal("#{@system_dir}/.usercustomparams", config.user_path()) end
|
69
65
|
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
def test_custom_system_path
|
67
|
+
config = Nugrant::Config.new({
|
68
|
+
:params_filename => ".customparams",
|
69
|
+
:system_path => "#{@current_dir}/.systemcustomparams"
|
70
|
+
})
|
73
71
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
:current_path => "#{@user_dir}/.currentcustomparams",
|
78
|
-
:user_path => "#{@system_dir}/.usercustomparams",
|
79
|
-
:system_path => "#{@current_dir}/.systemcustomparams"
|
80
|
-
})
|
81
|
-
|
82
|
-
assert_equal(".customparams", config.params_filename())
|
83
|
-
assert_equal("#{@user_dir}/.currentcustomparams", config.current_path())
|
84
|
-
assert_equal("#{@system_dir}/.usercustomparams", config.user_path())
|
85
|
-
assert_equal("#{@current_dir}/.systemcustomparams", config.system_path())
|
86
|
-
end
|
72
|
+
assert_equal(".customparams", config.params_filename())
|
73
|
+
assert_equal("#{@current_dir}/.systemcustomparams", config.system_path())
|
74
|
+
end
|
87
75
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
76
|
+
def test_custom_all
|
77
|
+
config = Nugrant::Config.new({
|
78
|
+
:params_filename => ".customparams",
|
79
|
+
:current_path => "#{@user_dir}/.currentcustomparams",
|
80
|
+
:user_path => "#{@system_dir}/.usercustomparams",
|
81
|
+
:system_path => "#{@current_dir}/.systemcustomparams"
|
82
|
+
})
|
83
|
+
|
84
|
+
assert_equal(".customparams", config.params_filename())
|
85
|
+
assert_equal("#{@user_dir}/.currentcustomparams", config.current_path())
|
86
|
+
assert_equal("#{@system_dir}/.usercustomparams", config.user_path())
|
87
|
+
assert_equal("#{@current_dir}/.systemcustomparams", config.system_path())
|
88
|
+
end
|
93
89
|
|
94
|
-
|
95
|
-
|
90
|
+
def test_nil_current
|
91
|
+
config = Nugrant::Config.new({
|
92
|
+
:params_filename => ".customparams",
|
93
|
+
:current_path => nil,
|
94
|
+
})
|
96
95
|
|
97
|
-
|
98
|
-
|
99
|
-
:params_filename => ".customparams",
|
100
|
-
:user_path => nil,
|
101
|
-
})
|
96
|
+
assert_equal("#{@current_dir}/.customparams", config.current_path())
|
97
|
+
end
|
102
98
|
|
103
|
-
|
104
|
-
|
99
|
+
def test_nil_user
|
100
|
+
config = Nugrant::Config.new({
|
101
|
+
:params_filename => ".customparams",
|
102
|
+
:user_path => nil,
|
103
|
+
})
|
105
104
|
|
106
|
-
|
107
|
-
|
108
|
-
:params_filename => ".customparams",
|
109
|
-
:system_path => nil,
|
110
|
-
})
|
105
|
+
assert_equal("#{@user_dir}/.customparams", config.user_path())
|
106
|
+
end
|
111
107
|
|
112
|
-
|
113
|
-
|
108
|
+
def test_nil_system
|
109
|
+
config = Nugrant::Config.new({
|
110
|
+
:params_filename => ".customparams",
|
111
|
+
:system_path => nil,
|
112
|
+
})
|
113
|
+
|
114
|
+
assert_equal("#{@system_dir}/.customparams", config.system_path())
|
115
|
+
end
|
114
116
|
|
115
|
-
|
116
|
-
|
117
|
-
|
117
|
+
def test_invalid_format
|
118
|
+
assert_raises(ArgumentError) do
|
119
|
+
Nugrant::Config.new({:params_format => :invalid})
|
120
|
+
end
|
118
121
|
end
|
119
122
|
end
|
120
123
|
end
|