copland 0.8.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 (184) hide show
  1. data/doc/README +88 -0
  2. data/doc/manual-html/chapter-1.html +454 -0
  3. data/doc/manual-html/chapter-10.html +399 -0
  4. data/doc/manual-html/chapter-11.html +600 -0
  5. data/doc/manual-html/chapter-12.html +406 -0
  6. data/doc/manual-html/chapter-2.html +382 -0
  7. data/doc/manual-html/chapter-3.html +424 -0
  8. data/doc/manual-html/chapter-4.html +432 -0
  9. data/doc/manual-html/chapter-5.html +381 -0
  10. data/doc/manual-html/chapter-6.html +364 -0
  11. data/doc/manual-html/chapter-7.html +434 -0
  12. data/doc/manual-html/chapter-8.html +373 -0
  13. data/doc/manual-html/chapter-9.html +324 -0
  14. data/doc/manual-html/copland.png +0 -0
  15. data/doc/manual-html/index.html +331 -0
  16. data/doc/manual-html/manual.css +179 -0
  17. data/doc/manual-html/tutorial-1.html +407 -0
  18. data/doc/manual-html/tutorial-2.html +451 -0
  19. data/doc/manual-html/tutorial-3.html +484 -0
  20. data/doc/manual-html/tutorial-4.html +446 -0
  21. data/doc/manual-html/tutorial-5.html +520 -0
  22. data/doc/manual/chapter.erb +18 -0
  23. data/doc/manual/example.erb +18 -0
  24. data/doc/manual/img/copland.png +0 -0
  25. data/doc/manual/index.erb +30 -0
  26. data/doc/manual/manual.css +179 -0
  27. data/doc/manual/manual.rb +239 -0
  28. data/doc/manual/manual.yml +2643 -0
  29. data/doc/manual/page.erb +102 -0
  30. data/doc/manual/tutorial.erb +30 -0
  31. data/doc/packages/copland.html +764 -0
  32. data/doc/packages/copland.lib.html +439 -0
  33. data/doc/packages/copland.remote.html +2096 -0
  34. data/doc/packages/copland.webrick.html +925 -0
  35. data/doc/packages/index.html +49 -0
  36. data/doc/packages/packrat.css +125 -0
  37. data/examples/calc/calc.rb +47 -0
  38. data/examples/calc/package.yml +35 -0
  39. data/examples/calc/services.rb +74 -0
  40. data/examples/solitaire-cipher/README +11 -0
  41. data/examples/solitaire-cipher/Rakefile +57 -0
  42. data/examples/solitaire-cipher/bin/main.rb +14 -0
  43. data/examples/solitaire-cipher/lib/cipher.rb +230 -0
  44. data/examples/solitaire-cipher/lib/cli.rb +24 -0
  45. data/examples/solitaire-cipher/lib/package.yml +106 -0
  46. data/examples/solitaire-cipher/test/tc_deck.rb +30 -0
  47. data/examples/solitaire-cipher/test/tc_key-stream.rb +19 -0
  48. data/examples/solitaire-cipher/test/tc_keying-algorithms.rb +31 -0
  49. data/examples/solitaire-cipher/test/tc_solitaire-cipher.rb +66 -0
  50. data/examples/solitaire-cipher/test/tc_unkeyed-algorithm.rb +17 -0
  51. data/examples/solitaire-cipher/test/tests.rb +2 -0
  52. data/lib/copland.rb +56 -0
  53. data/lib/copland/class-factory.rb +95 -0
  54. data/lib/copland/configuration-point.rb +38 -0
  55. data/lib/copland/configuration-point/common.rb +203 -0
  56. data/lib/copland/configuration-point/errors.rb +44 -0
  57. data/lib/copland/configuration-point/list.rb +59 -0
  58. data/lib/copland/configuration-point/map.rb +59 -0
  59. data/lib/copland/configuration/errors.rb +43 -0
  60. data/lib/copland/configuration/loader.rb +113 -0
  61. data/lib/copland/configuration/yaml/configuration-point.rb +87 -0
  62. data/lib/copland/configuration/yaml/implementor.rb +134 -0
  63. data/lib/copland/configuration/yaml/interceptor.rb +63 -0
  64. data/lib/copland/configuration/yaml/listener.rb +56 -0
  65. data/lib/copland/configuration/yaml/loader.rb +122 -0
  66. data/lib/copland/configuration/yaml/package.rb +125 -0
  67. data/lib/copland/configuration/yaml/parser.rb +71 -0
  68. data/lib/copland/configuration/yaml/schema.rb +165 -0
  69. data/lib/copland/configuration/yaml/service-point.rb +116 -0
  70. data/lib/copland/configuration/yaml/utils.rb +82 -0
  71. data/lib/copland/default-schema-processor.rb +144 -0
  72. data/lib/copland/errors.rb +82 -0
  73. data/lib/copland/event-producer.rb +95 -0
  74. data/lib/copland/impl/builder-factory.rb +112 -0
  75. data/lib/copland/impl/copland-config.yml +1 -0
  76. data/lib/copland/impl/include-exclude.rb +140 -0
  77. data/lib/copland/impl/logging-interceptor.rb +106 -0
  78. data/lib/copland/impl/package.yml +217 -0
  79. data/lib/copland/impl/startup.rb +116 -0
  80. data/lib/copland/impl/symbol-source-manager.rb +131 -0
  81. data/lib/copland/impl/symbol-source.rb +63 -0
  82. data/lib/copland/instantiator.rb +38 -0
  83. data/lib/copland/instantiator/abstract.rb +91 -0
  84. data/lib/copland/instantiator/complex.rb +96 -0
  85. data/lib/copland/instantiator/identity.rb +58 -0
  86. data/lib/copland/instantiator/simple.rb +68 -0
  87. data/lib/copland/interceptor-chain.rb +166 -0
  88. data/lib/copland/interceptor.rb +139 -0
  89. data/lib/copland/log-factory.rb +206 -0
  90. data/lib/copland/models.rb +39 -0
  91. data/lib/copland/models/abstract.rb +78 -0
  92. data/lib/copland/models/prototype-deferred.rb +58 -0
  93. data/lib/copland/models/prototype.rb +58 -0
  94. data/lib/copland/models/proxy.rb +100 -0
  95. data/lib/copland/models/singleton-deferred.rb +59 -0
  96. data/lib/copland/models/singleton.rb +77 -0
  97. data/lib/copland/models/threaded.rb +65 -0
  98. data/lib/copland/ordering.rb +123 -0
  99. data/lib/copland/package.rb +246 -0
  100. data/lib/copland/registry.rb +368 -0
  101. data/lib/copland/schema.rb +206 -0
  102. data/lib/copland/service-point.rb +282 -0
  103. data/lib/copland/utils.rb +221 -0
  104. data/lib/copland/version.rb +47 -0
  105. data/test/conf-test/list-bad-key.yml +30 -0
  106. data/test/conf-test/list-bad-missing.yml +28 -0
  107. data/test/conf-test/list-bad-type.yml +28 -0
  108. data/test/conf-test/list-good.yml +29 -0
  109. data/test/conf-test/map-bad-key.yml +25 -0
  110. data/test/conf-test/map-bad-missing.yml +24 -0
  111. data/test/conf-test/map-bad-type.yml +23 -0
  112. data/test/conf-test/map-good.yml +25 -0
  113. data/test/configuration-point/package.yml +52 -0
  114. data/test/configuration/yaml/config/copland-config.yml +2 -0
  115. data/test/configuration/yaml/config/module.yml +2 -0
  116. data/test/configuration/yaml/config/subdir/copland-config.yml +2 -0
  117. data/test/configuration/yaml/config/subdir/package.yml +4 -0
  118. data/test/configuration/yaml/defaults/package.yml +5 -0
  119. data/test/configuration/yaml/defaults/subdir/package.yml +4 -0
  120. data/test/configuration/yaml/tc_config-loader.rb +86 -0
  121. data/test/configuration/yaml/tc_configuration-point-processor.rb +134 -0
  122. data/test/configuration/yaml/tc_implementor-processor.rb +104 -0
  123. data/test/configuration/yaml/tc_interceptor-processor.rb +85 -0
  124. data/test/configuration/yaml/tc_listener-processor.rb +69 -0
  125. data/test/configuration/yaml/tc_loader.rb +74 -0
  126. data/test/configuration/yaml/tc_package-processor.rb +120 -0
  127. data/test/configuration/yaml/tc_parser.rb +94 -0
  128. data/test/configuration/yaml/tc_schema-parser.rb +160 -0
  129. data/test/configuration/yaml/tc_service-point-processor.rb +104 -0
  130. data/test/configuration/yaml/tc_type-validator.rb +90 -0
  131. data/test/custom-logger.yml +3 -0
  132. data/test/impl/logging/package.yml +44 -0
  133. data/test/impl/logging/services.rb +84 -0
  134. data/test/impl/startup/package.yml +46 -0
  135. data/test/impl/startup/services.rb +47 -0
  136. data/test/impl/symbols/package.yml +24 -0
  137. data/test/impl/symbols/services.rb +38 -0
  138. data/test/impl/tc_builder-factory.rb +173 -0
  139. data/test/impl/tc_logging-interceptor.rb +148 -0
  140. data/test/impl/tc_startup.rb +59 -0
  141. data/test/impl/tc_symbol-sources.rb +61 -0
  142. data/test/logger.yml +6 -0
  143. data/test/mock.rb +201 -0
  144. data/test/schema/bad-package.yml +65 -0
  145. data/test/schema/package.yml +102 -0
  146. data/test/schema/services.rb +5 -0
  147. data/test/services/package.yml +79 -0
  148. data/test/services/simple.rb +87 -0
  149. data/test/tc_class-factory.rb +93 -0
  150. data/test/tc_complex-instantiator.rb +107 -0
  151. data/test/tc_configuration-point-contrib.rb +74 -0
  152. data/test/tc_configuration-point-schema.rb +122 -0
  153. data/test/tc_configuration-point.rb +91 -0
  154. data/test/tc_default-schema-processor.rb +297 -0
  155. data/test/tc_identity-instantiator.rb +61 -0
  156. data/test/tc_interceptors.rb +84 -0
  157. data/test/tc_logger.rb +131 -0
  158. data/test/tc_models.rb +176 -0
  159. data/test/tc_package.rb +165 -0
  160. data/test/tc_proxy.rb +65 -0
  161. data/test/tc_registry.rb +141 -0
  162. data/test/tc_schema.rb +78 -0
  163. data/test/tc_service-point.rb +178 -0
  164. data/test/tc_service.rb +70 -0
  165. data/test/tc_simple-instantiator.rb +61 -0
  166. data/test/tests.rb +93 -0
  167. data/tutorial/01/main.rb +7 -0
  168. data/tutorial/01/package.yml +8 -0
  169. data/tutorial/01/tutorial.rb +7 -0
  170. data/tutorial/02/main.rb +10 -0
  171. data/tutorial/02/package.yml +27 -0
  172. data/tutorial/02/tutorial.rb +46 -0
  173. data/tutorial/03/main.rb +24 -0
  174. data/tutorial/03/package.yml +29 -0
  175. data/tutorial/03/tutorial.rb +48 -0
  176. data/tutorial/04/main.rb +24 -0
  177. data/tutorial/04/package.yml +35 -0
  178. data/tutorial/04/tutorial.rb +48 -0
  179. data/tutorial/05/functions/package.yml +16 -0
  180. data/tutorial/05/functions/services.rb +15 -0
  181. data/tutorial/05/main.rb +10 -0
  182. data/tutorial/05/package.yml +35 -0
  183. data/tutorial/05/tutorial.rb +53 -0
  184. metadata +260 -0
@@ -0,0 +1,91 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # * Redistributions in binary form must reproduce the above copyright
13
+ # notice, this list of conditions and the following disclaimer in the
14
+ # documentation and/or other materials provided with the distribution.
15
+ #
16
+ # * The names of its contributors may not be used to endorse or promote
17
+ # products derived from this software without specific prior written
18
+ # permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
+ # POSSIBILITY OF SUCH DAMAGE.
31
+ # =============================================================================
32
+ #++
33
+
34
+ $:.unshift "../lib"
35
+
36
+ require 'test/unit'
37
+ require 'copland/configuration-point'
38
+ require 'copland/errors'
39
+ require 'copland'
40
+ require 'mock'
41
+
42
+ class TC_ConfigurationPoint < Test::Unit::TestCase
43
+
44
+ def setup
45
+ @factory = Factory.new( Copland::ConfigurationPoint::POOL_NAME )
46
+ @package = MockPackage.new( MockRegistry.new )
47
+ end
48
+
49
+ def test_factory
50
+ list = @factory.get( "list", @package, "list" )
51
+ map = @factory.get( "map", @package, "map" )
52
+
53
+ assert_raise( Copland::NoSuchRegisteredClassException ) do
54
+ @factory.get( "bogus", @package, "bogus" )
55
+ end
56
+ end
57
+
58
+ def test_list
59
+ list = @factory.get( "list", @package, "list" )
60
+
61
+ assert_equal "list", list.name
62
+ assert_equal @package.name + "." "list", list.full_name
63
+ assert_equal @package, list.owner
64
+
65
+ assert_instance_of Copland::ConfigurationPoint::ListConfigurationPoint, list
66
+ assert list.empty?
67
+
68
+ list.contribute [ 1, 2, 3, 4, 5 ]
69
+
70
+ assert_equal [ 1, 2, 3, 4, 5 ], list
71
+ end
72
+
73
+ def test_map
74
+ map = @factory.get( "map", @package, "map" )
75
+
76
+ assert_equal "map", map.name
77
+ assert_equal @package.name + "." "map", map.full_name
78
+ assert_equal @package, map.owner
79
+
80
+ assert_instance_of Copland::ConfigurationPoint::MapConfigurationPoint, map
81
+ assert map.empty?
82
+
83
+ map.contribute :one=>:two, :three=>:four
84
+ assert_equal( { :one=>:two, :three=>:four }, map )
85
+
86
+ assert_raise( Copland::ConfigurationPoint::ContributionTypeMismatch ) do
87
+ map.contribute [ 1, 2, 3, 4, 5 ]
88
+ end
89
+ end
90
+
91
+ end
@@ -0,0 +1,297 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # * Redistributions in binary form must reproduce the above copyright
13
+ # notice, this list of conditions and the following disclaimer in the
14
+ # documentation and/or other materials provided with the distribution.
15
+ #
16
+ # * The names of its contributors may not be used to endorse or promote
17
+ # products derived from this software without specific prior written
18
+ # permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
+ # POSSIBILITY OF SUCH DAMAGE.
31
+ # =============================================================================
32
+ #++
33
+
34
+ $:.unshift "../lib"
35
+
36
+ require 'copland/errors'
37
+ require 'copland/configuration/yaml/schema.rb'
38
+ require 'copland/default-schema-processor.rb'
39
+ require 'test/unit'
40
+ require 'mock'
41
+ require 'yaml'
42
+
43
+
44
+ class TC_DefaultSchemaProcessor < Test::Unit::TestCase
45
+
46
+ def setup
47
+ @parser = Copland::Configuration::YAML::SchemaParser.new
48
+ @processor = Copland::DefaultSchemaProcessor.new
49
+ @owner = MockServicePoint.new
50
+ @client = MockServicePoint.new
51
+
52
+ y = YAML::load( %Q{
53
+ definition:
54
+ class:
55
+ type: string
56
+ required: true
57
+ something:
58
+ type: any
59
+ integer:
60
+ type: integer
61
+ real:
62
+ type: real
63
+ service:
64
+ type: service
65
+ configuration:
66
+ type: configuration
67
+ log:
68
+ type: log
69
+ array:
70
+ type: array
71
+ hash:
72
+ type: hash
73
+ boolean:
74
+ type: boolean
75
+ string:
76
+ type: string
77
+ subschema:
78
+ definition:
79
+ user.name:
80
+ type: string
81
+ required: true
82
+ auto.load:
83
+ type: boolean
84
+ services:
85
+ type: array
86
+ options:
87
+ type: array
88
+ definition:
89
+ option.name:
90
+ type: string
91
+ required: true
92
+ option.value:
93
+ type: string
94
+ required: true
95
+ } )
96
+
97
+ @schema = @parser.process( @owner, y )
98
+ end
99
+
100
+ def test_illegal_parameters
101
+ data = { "class" => "hello", "bogus" => "value" }
102
+
103
+ assert_raise( Copland::ValidationException ) do
104
+ @processor.validate( @owner,
105
+ @client,
106
+ @schema,
107
+ data )
108
+ end
109
+ end
110
+
111
+ def test_missing_parameters
112
+ data = { "something" => "X" }
113
+
114
+ assert_raise( Copland::ValidationException ) do
115
+ @processor.validate( @owner,
116
+ @client,
117
+ @schema,
118
+ data )
119
+ end
120
+ end
121
+
122
+ def test_wrong_type
123
+ pairs = {
124
+ "integer" => "hello",
125
+ "real" => "hello",
126
+ "service" => "hello",
127
+ "configuration" => "hello",
128
+ "array" => "hello",
129
+ "hash" => "hello",
130
+ "boolean" => "hello",
131
+ "string" => 15
132
+ }
133
+
134
+ pairs.each do |k,v|
135
+ data = { "class" => "hello", k => v }
136
+
137
+ assert_raise( Copland::ValidationException ) do
138
+ @processor.validate( @owner,
139
+ @client,
140
+ @schema,
141
+ data )
142
+ end
143
+ end
144
+ end
145
+
146
+ def test_validate_any
147
+ data = { "class" => "hello", "something" => "value" }
148
+ assert_nothing_raised do
149
+ @processor.validate( @owner,
150
+ @client,
151
+ @schema,
152
+ data )
153
+ end
154
+
155
+ data = { "class" => "hello", "something" => 15 }
156
+ assert_nothing_raised do
157
+ @processor.validate( @owner,
158
+ @client,
159
+ @schema,
160
+ data )
161
+ end
162
+
163
+ data = { "class" => "hello", "something" => [ "one", "two" ] }
164
+ assert_nothing_raised do
165
+ @processor.validate( @owner,
166
+ @client,
167
+ @schema,
168
+ data )
169
+ end
170
+ end
171
+
172
+ def test_validate_bad_subschema_missing_key
173
+ data = YAML::load( %Q{
174
+ class: hello
175
+ subschema:
176
+ auto.load: true
177
+ } )
178
+
179
+ assert_raise( Copland::ValidationException ) do
180
+ @processor.validate( @owner,
181
+ @client,
182
+ @schema,
183
+ data )
184
+ end
185
+ end
186
+
187
+ def test_validate_bad_subschema_extra_key
188
+ data = YAML::load( %Q{
189
+ class: hello
190
+ subschema:
191
+ user.name: bob
192
+ bogus: value
193
+ } )
194
+
195
+ assert_raise( Copland::ValidationException ) do
196
+ @processor.validate( @owner,
197
+ @client,
198
+ @schema,
199
+ data )
200
+ end
201
+ end
202
+
203
+ def test_validate_bad_subschema_type_mismatch
204
+ data = YAML::load( %Q{
205
+ class: hello
206
+ subschema:
207
+ user.name: bob
208
+ auto.load: value
209
+ } )
210
+
211
+ assert_raise( Copland::ValidationException ) do
212
+ @processor.validate( @owner,
213
+ @client,
214
+ @schema,
215
+ data )
216
+ end
217
+ end
218
+
219
+ def test_validate_array_subschema_missing_key
220
+ data = YAML::load( %Q{
221
+ class: hello
222
+ options:
223
+ - option.name: bob
224
+ } )
225
+
226
+ assert_raise( Copland::ValidationException ) do
227
+ @processor.validate( @owner,
228
+ @client,
229
+ @schema,
230
+ data )
231
+ end
232
+ end
233
+
234
+ def test_validate_array_subschema_wrong_type
235
+ data = YAML::load( %Q{
236
+ class: hello
237
+ options:
238
+ - option.name: bob
239
+ option.value: !!service some.service
240
+ } )
241
+
242
+ assert_raise( Copland::ValidationException ) do
243
+ @processor.validate( @owner,
244
+ @client,
245
+ @schema,
246
+ data )
247
+ end
248
+ end
249
+
250
+ def test_validate_array_subschema
251
+ data = YAML::load( %Q{
252
+ class: hello
253
+ options:
254
+ - option.name: bob
255
+ option.value: jim
256
+ - option.name: tom
257
+ option.value: carl
258
+ - option.name: another
259
+ option.value: pair
260
+ } )
261
+
262
+ assert_nothing_raised do
263
+ @processor.validate( @owner,
264
+ @client,
265
+ @schema,
266
+ data )
267
+ end
268
+ end
269
+
270
+ def test_validate_success
271
+ data = YAML::load( %Q{
272
+ class: hello
273
+ something: :a_symbol
274
+ integer: 15
275
+ real: 3.14
276
+ service: !!service copland.Something
277
+ configuration: !!configuration copland.Something
278
+ log: !!log ~
279
+ array:
280
+ - one
281
+ - two
282
+ hash:
283
+ one: two
284
+ three: four
285
+ boolean: true
286
+ string: hello
287
+ } )
288
+
289
+ assert_nothing_raised do
290
+ @processor.validate( @owner,
291
+ @client,
292
+ @schema,
293
+ data )
294
+ end
295
+ end
296
+
297
+ end
@@ -0,0 +1,61 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # * Redistributions in binary form must reproduce the above copyright
13
+ # notice, this list of conditions and the following disclaimer in the
14
+ # documentation and/or other materials provided with the distribution.
15
+ #
16
+ # * The names of its contributors may not be used to endorse or promote
17
+ # products derived from this software without specific prior written
18
+ # permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
+ # POSSIBILITY OF SUCH DAMAGE.
31
+ # =============================================================================
32
+ #++
33
+
34
+ $:.unshift "../lib"
35
+
36
+ require 'test/unit'
37
+ require 'copland/class-factory'
38
+ require 'copland/errors'
39
+ require 'copland/instantiator'
40
+ require 'mock'
41
+
42
+ class TC_IdentityInstantiator < Test::Unit::TestCase
43
+
44
+ def setup
45
+ @factory = Factory.new( Copland::Instantiator::POOL_NAME )
46
+ end
47
+
48
+ def test_get
49
+ assert_nothing_raised do
50
+ @factory.get( "identity", nil, "hello" )
51
+ end
52
+ end
53
+
54
+ def test_instantiate
55
+ inst = @factory.get( "identity", nil, "hello" )
56
+ svc = inst.instantiate
57
+ assert_equal "hello", svc
58
+ end
59
+
60
+ end
61
+