Class: DefineAccessorsTest

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/puppet/external/event-loop/better-definers.rb

Instance Method Summary collapse

Instance Method Details

#setupObject



257
258
259
260
261
262
# File 'lib/puppet/external/event-loop/better-definers.rb', line 257

def setup
  @X = Class.new
  @Y = Class.new @X
  @x = @X.new
  @y = @Y.new
end

#test_define_accessorsObject



343
344
345
346
347
348
# File 'lib/puppet/external/event-loop/better-definers.rb', line 343

def test_define_accessors
  @X.define_accessors :foo, :bar
  @x.foo = 123 ; @x.bar = 456
  assert_equal @x.foo, 123
  assert_equal @x.bar, 456
end

#test_define_hard_aliasesObject



264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/puppet/external/event-loop/better-definers.rb', line 264

def test_define_hard_aliases
  @X.define_method(:foo) { 123 }
  @X.define_method(:baz) { 321 }
  @X.define_hard_aliases :bar => :foo, :quux => :baz
  assert_equal @x.foo, 123
  assert_equal @x.bar, 123
  assert_equal @y.foo, 123
  assert_equal @y.bar, 123
  assert_equal @x.baz, 321
  assert_equal @x.quux, 321
  assert_equal @y.baz, 321
  assert_equal @y.quux, 321
  @Y.define_method(:foo) { 456 }
  assert_equal @y.foo, 456
  assert_equal @y.bar, 123
  @Y.define_method(:quux) { 654 }
  assert_equal @y.baz, 321
  assert_equal @y.quux, 654
end

#test_define_opposite_readersObject



350
351
352
353
354
355
356
357
358
359
360
361
# File 'lib/puppet/external/event-loop/better-definers.rb', line 350

def test_define_opposite_readers
  @X.define_opposite_readers :foo? => :bar?, :baz? => :quux?
  assert !@x.respond_to?(:foo=)
  assert !@x.respond_to?(:bar=)
  assert !@x.respond_to?(:baz=)
  assert !@x.respond_to?(:quux=)
  @x.instance_eval { @bar = true ; @quux = false }
  assert !@x.foo?
  assert @x.bar?
  assert @x.baz?
  assert !@x.quux?
end

#test_define_opposite_writersObject



363
364
365
# File 'lib/puppet/external/event-loop/better-definers.rb', line 363

def test_define_opposite_writers
  @X.define_opposite_writers :foo? => :bar?, :baz => :quux
end

#test_define_readersObject



303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/puppet/external/event-loop/better-definers.rb', line 303

def test_define_readers
  @X.define_readers :foo, :bar
  assert !@x.respond_to?(:foo=)
  assert !@x.respond_to?(:bar=)
  @x.instance_eval { @foo = 123 ; @bar = 456 }
  assert_equal @x.foo, 123
  assert_equal @x.bar, 456
  @X.define_readers :baz?, :quux?
  assert !@x.respond_to?(:baz=)
  assert !@x.respond_to?(:quux=)
  @x.instance_eval { @baz = false ; @quux = true }
  assert !@x.baz?
  assert @x.quux?
end

#test_define_soft_aliasesObject



284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
# File 'lib/puppet/external/event-loop/better-definers.rb', line 284

def test_define_soft_aliases
  @X.define_method(:foo) { 123 }
  @X.define_method(:baz) { 321 }
  @X.define_soft_aliases :bar => :foo, :quux => :baz
  assert_equal @x.foo, 123
  assert_equal @x.bar, 123
  assert_equal @y.foo, 123
  assert_equal @y.bar, 123
  assert_equal @x.baz, 321
  assert_equal @x.quux, 321
  assert_equal @y.baz, 321
  assert_equal @y.quux, 321
  @Y.define_method(:foo) { 456 }
  assert_equal @y.foo, @y.bar, 456
  @Y.define_method(:quux) { 654 }
  assert_equal @y.baz, 321
  assert_equal @y.quux, 654
end

#test_define_writersObject



318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
# File 'lib/puppet/external/event-loop/better-definers.rb', line 318

def test_define_writers
  assert !@X.writer_defined?(:foo)
  assert !@X.writer_defined?(:bar)
  @X.define_writers :foo, :bar
  assert @X.writer_defined?(:foo)
  assert @X.writer_defined?(:bar)
  assert @X.writer_defined?(:foo=)
  assert @X.writer_defined?(:bar=)
  assert @X.writer_defined?(:foo?)
  assert @X.writer_defined?(:bar?)
  assert !@x.respond_to?(:foo)
  assert !@x.respond_to?(:bar)
  @x.foo = 123
  @x.bar = 456
  assert_equal @x.instance_eval { @foo }, 123
  assert_equal @x.instance_eval { @bar }, 456
  @X.define_writers :baz?, :quux?
  assert !@x.respond_to?(:baz?)
  assert !@x.respond_to?(:quux?)
  @x.baz = true
  @x.quux = false
  assert_equal @x.instance_eval { @baz }, true
  assert_equal @x.instance_eval { @quux }, false
end