cascading-configuration-hash 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,144 +0,0 @@
1
-
2
- require_relative '../../lib/cascading-configuration-hash.rb'
3
-
4
- describe CascadingConfiguration::Hash do
5
-
6
- #############################
7
- # attr_configuration_hash #
8
- #############################
9
-
10
- it 'can define a configuration hash, which is the primary interface' do
11
- module CascadingConfiguration::Hash::MockModule
12
- include CascadingConfiguration::Hash
13
- attr_configuration_hash :configuration_setting
14
- configuration_setting.should == {}
15
- self.configuration_setting[ :a_configuration ] = :some_value
16
- configuration_setting.should == { :a_configuration => :some_value }
17
- end
18
-
19
- module CascadingConfiguration::Hash::MockModule2
20
- include CascadingConfiguration::Hash::MockModule
21
- configuration_setting.should == { :a_configuration => :some_value }
22
- configuration_setting[ :other_setting ] = :some_value
23
- configuration_setting.should == { :a_configuration => :some_value,
24
- :other_setting => :some_value }
25
- configuration_setting.delete( :other_setting ).should == :some_value
26
- configuration_setting.should == { :a_configuration => :some_value }
27
- end
28
-
29
- module CascadingConfiguration::Hash::MockModule3
30
- include CascadingConfiguration::Hash::MockModule2
31
- end
32
-
33
- class CascadingConfiguration::Hash::MockClass
34
- include CascadingConfiguration::Hash::MockModule3
35
- configuration_setting.should == { :a_configuration => :some_value }
36
- configuration_setting[ :other_setting ] = :some_value
37
- configuration_setting.should == { :a_configuration => :some_value,
38
- :other_setting => :some_value }
39
- configuration_setting.delete( :other_setting ).should == :some_value
40
- configuration_setting.should == { :a_configuration => :some_value }
41
- end
42
-
43
- object_instance_one = CascadingConfiguration::Hash::MockClass.new
44
- object_instance_one.configuration_setting.should == { :a_configuration => :some_value }
45
- object_instance_one.configuration_setting[ :some_other_configuration ] = :some_value
46
- object_instance_one.configuration_setting.should == { :a_configuration => :some_value,
47
- :some_other_configuration => :some_value }
48
-
49
- class CascadingConfiguration::Hash::MockClassSub1 < CascadingConfiguration::Hash::MockClass
50
- configuration_setting.should == { :a_configuration => :some_value }
51
- self.configuration_setting[ :another_configuration ] = :some_value
52
- configuration_setting.should == { :a_configuration => :some_value,
53
- :another_configuration => :some_value }
54
- end
55
-
56
- CascadingConfiguration::Hash::MockClassSub1.new.configuration_setting.should == { :a_configuration => :some_value,
57
- :another_configuration => :some_value }
58
-
59
- object_instance_two = CascadingConfiguration::Hash::MockClassSub1.new
60
- object_instance_two.configuration_setting.should == { :a_configuration => :some_value,
61
- :another_configuration => :some_value }
62
- object_instance_two.configuration_setting[ :some_other_configuration ] = :some_value
63
- object_instance_two.configuration_setting.should == { :a_configuration => :some_value,
64
- :another_configuration => :some_value,
65
- :some_other_configuration => :some_value }
66
-
67
- # change ancestor setting
68
- CascadingConfiguration::Hash::MockClass.configuration_setting[ :a_yet_unused_configuration ] = :some_value
69
- CascadingConfiguration::Hash::MockClass.configuration_setting.should == { :a_configuration => :some_value,
70
- :a_yet_unused_configuration => :some_value }
71
- object_instance_one.configuration_setting.should == { :a_configuration => :some_value,
72
- :a_yet_unused_configuration => :some_value,
73
- :some_other_configuration => :some_value }
74
- CascadingConfiguration::Hash::MockClassSub1.configuration_setting.should == { :a_configuration => :some_value,
75
- :a_yet_unused_configuration => :some_value,
76
- :another_configuration => :some_value }
77
- object_instance_two.configuration_setting.should == { :a_configuration => :some_value,
78
- :a_yet_unused_configuration => :some_value,
79
- :another_configuration => :some_value,
80
- :some_other_configuration => :some_value }
81
-
82
- # freeze ancestor setting
83
- object_instance_one.configuration_setting.freeze!
84
- object_instance_one.configuration_setting.should == { :a_configuration => :some_value,
85
- :a_yet_unused_configuration => :some_value,
86
- :some_other_configuration => :some_value }
87
- CascadingConfiguration::Hash::MockClassSub1.configuration_setting.freeze!
88
- CascadingConfiguration::Hash::MockClassSub1.configuration_setting.should == { :a_configuration => :some_value,
89
- :a_yet_unused_configuration => :some_value,
90
- :another_configuration => :some_value }
91
- CascadingConfiguration::Hash::MockClass.configuration_setting[ :non_cascading_configuration ] = :some_value
92
- CascadingConfiguration::Hash::MockClass.configuration_setting.should == { :a_configuration => :some_value,
93
- :a_yet_unused_configuration => :some_value,
94
- :non_cascading_configuration => :some_value }
95
- object_instance_one.configuration_setting.should == { :a_configuration => :some_value,
96
- :a_yet_unused_configuration => :some_value,
97
- :some_other_configuration => :some_value }
98
- CascadingConfiguration::Hash::MockClassSub1.configuration_setting.should == { :a_configuration => :some_value,
99
- :a_yet_unused_configuration => :some_value,
100
- :another_configuration => :some_value }
101
- object_instance_two.configuration_setting.should == { :a_configuration => :some_value,
102
- :a_yet_unused_configuration => :some_value,
103
- :another_configuration => :some_value,
104
- :some_other_configuration => :some_value }
105
-
106
- module CascadingConfiguration::Hash::MockModule
107
- attr_configuration_hash :some_hash do |parent_hash, composite_hash|
108
- parent_hash.each do |this_key, this_data|
109
- if existing_value = composite_hash[ this_key ]
110
- composite_hash[ this_key ] = this_data - existing_value
111
- else
112
- composite_hash[ this_key ] = this_data
113
- end
114
- end
115
- composite_hash
116
- end
117
- self.some_hash = { :one => 1, :two => 2 }
118
- self.some_hash.should == { :one => 1, :two => 2 }
119
- end
120
-
121
- module CascadingConfiguration::Hash::MockModule2
122
- self.some_hash.should == { :one => 1, :two => 2 }
123
- self.some_hash.replace( { :one => 1, :two => 2 } )
124
- self.some_hash.should == { :one => 0, :two => 0 }
125
- end
126
-
127
- # test two
128
-
129
- module CascadingConfiguration::Hash::MockModuleExtended
130
- include CascadingConfiguration::Hash
131
- attr_configuration_hash :configuration_setting
132
- configuration_setting.should == {}
133
- configuration_setting[ :a_configuration ] = :some_value
134
- configuration_setting.should == { :a_configuration => :some_value }
135
- end
136
-
137
- class CascadingConfiguration::Hash::MockClassExtended
138
- extend CascadingConfiguration::Hash::MockModuleExtended
139
- configuration_setting.should == { :a_configuration => :some_value }
140
- end
141
-
142
- end
143
-
144
- end