kronk 1.2.5 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,54 @@
1
+ class Yzma
2
+
3
+ ##
4
+ # Randomizes params, data, and headers for Yzma requests.
5
+
6
+ class Randomizer
7
+
8
+ def initialize
9
+ @options = {}
10
+ end
11
+
12
+
13
+ def to_options
14
+ @options.dup
15
+ end
16
+
17
+
18
+ def randomize_param name, values, options={}
19
+ @options[:query] ||= {}
20
+ assign_random @options[:query], name, values, options
21
+ end
22
+
23
+
24
+ def randomize_data name, values, options={}
25
+ @options[:data] ||= {}
26
+ assign_random @options[:data], name, values, options
27
+ end
28
+
29
+
30
+ def randomize_header name, values, options={}
31
+ @options[:headers] ||= {}
32
+ assign_random @options[:headers], name, values, options
33
+ end
34
+
35
+
36
+ def assign_random obj, key, values, options={}
37
+ random_value = pick_random values, options
38
+ obj[key] = random_value if random_value
39
+ end
40
+
41
+
42
+ def pick_random val, options={}
43
+ val = File.readlines val if String === val
44
+ val = val.to_a if Range === val
45
+
46
+ val << "" if options[:allow_blank]
47
+ val << nil if options[:optional]
48
+
49
+ return if val.empty?
50
+
51
+ val[rand(val.length)]
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,47 @@
1
+ class Yzma
2
+
3
+ ##
4
+ # Used to build and display Yzma reports.
5
+ # Other report types can be created by inheriting this class and
6
+ # overridding the 'write' method to use @data as desired.
7
+
8
+ class Report
9
+
10
+ attr_accessor :data, :header, :footer, :name
11
+
12
+ def initialize name
13
+ @name = name
14
+ @data = []
15
+ @header = ["#{@name} #{Time.now}"]
16
+ @footer = ["\n"]
17
+ end
18
+
19
+
20
+ ##
21
+ # Adds data and a related piece of data identification to
22
+ # the report.
23
+
24
+ def add identifier, data
25
+ @data << [identifier, data]
26
+ end
27
+
28
+
29
+ ##
30
+ # Generates and writes the report to the given IO instance.
31
+ # Defaults to STDOUT.
32
+
33
+ def write io=$stdout
34
+ io << @header.join("\n")
35
+
36
+ @data.each do |identifier, data|
37
+ if block_given?
38
+ io << yield(identifier, data)
39
+ else
40
+ io << "\n#{identifier.inspect}\n#{data.inspect}\n"
41
+ end
42
+ end
43
+
44
+ io << @footer.join("\n")
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,93 @@
1
+ require 'test/test_helper'
2
+ require 'lib/kronk/test/assertions'
3
+
4
+ class TestAssertions < Test::Unit::TestCase
5
+ include Kronk::Test::Assertions
6
+
7
+ def setup
8
+ @array = [:a, :b, {:foo => "bar", :bar => [:a, :b, {:foo => "other"}]}, :c]
9
+ @hash = {:foo => "bar", :bar => [:a, :b, {:foo => "other"}], :a => [1,2,3]}
10
+ end
11
+
12
+
13
+ def test_assert_data_at
14
+ assert_data_at @array, "2/bar/2"
15
+ assert_data_at @hash, "bar/2"
16
+ end
17
+
18
+
19
+ def test_assert_data_at_failure
20
+ self.expects(:assert).with(false, "OOPS")
21
+ assert_data_at @array, "foobar", "OOPS"
22
+ end
23
+
24
+
25
+ def test_assert_no_data_at
26
+ assert_no_data_at @array, "foobar"
27
+ end
28
+
29
+
30
+ def test_assert_no_data_at_failure
31
+ self.expects(:assert).with(false, "OOPS")
32
+ assert_no_data_at @array, "**/foo", "OOPS"
33
+ end
34
+
35
+
36
+ def test_assert_data_at_equal
37
+ assert_data_at_equal @array, "2/bar/2/foo", "other"
38
+ assert_data_at_equal @hash, "bar/2/foo", "other"
39
+ end
40
+
41
+
42
+ def test_assert_data_at_equal_failure
43
+ self.expects(:assert).with(false, "OOPS")
44
+ self.expects(:assert_equal).with("nodice", nil, "OOPS")
45
+ assert_data_at_equal @array, "foobar", "nodice", "OOPS"
46
+ end
47
+
48
+
49
+ def test_assert_data_at_not_equal
50
+ assert_data_at_not_equal @array, "foobar", "thing"
51
+ end
52
+
53
+
54
+ def test_assert_data_at_not_equal_failure
55
+ self.expects(:assert_not_equal).with("bar", "bar", "OOPS")
56
+ assert_data_at_not_equal @array, "**/foo", "bar", "OOPS"
57
+ end
58
+
59
+
60
+ def test_assert_equal_responses
61
+ io = StringIO.new mock_resp("200_response.json")
62
+ mock_resp = Kronk::Response.read_new io
63
+
64
+ Kronk::Request.expects(:retrieve).times(2).
65
+ with("host.com", :foo => "bar").returns mock_resp
66
+
67
+ assert_equal_responses "host.com", "host.com", :foo => "bar"
68
+ end
69
+
70
+
71
+ def test_assert_equal_responses_failure
72
+ mock_resp1 = Kronk::Response.read_new \
73
+ StringIO.new mock_resp("200_response.json")
74
+
75
+ mock_resp2 = Kronk::Response.read_new \
76
+ StringIO.new mock_resp("301_response.txt")
77
+
78
+ Kronk::Request.expects(:retrieve).
79
+ with("host1.com", :foo => "bar").returns mock_resp1
80
+
81
+ Kronk::Request.expects(:retrieve).
82
+ with("host2.com", :foo => "bar").returns mock_resp2
83
+
84
+ left = Kronk::Diff.ordered_data_string mock_resp1.selective_data
85
+ right = mock_resp2.body
86
+
87
+ assert_not_equal left, right
88
+
89
+ self.expects(:assert_equal).with left, right
90
+
91
+ assert_equal_responses "host1.com", "host2.com", :foo => "bar"
92
+ end
93
+ end
@@ -0,0 +1,74 @@
1
+ require 'test/test_helper'
2
+ require 'lib/kronk/test/core_ext'
3
+
4
+ class TestCoreExt < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @array = [:a, :b, {:foo => "bar", :bar => [:a, :b, {:foo => "other"}]}, :c]
8
+ @hash = {:foo => "bar", :bar => [:a, :b, {:foo => "other"}], :a => [1,2,3]}
9
+ end
10
+
11
+
12
+ def test_has_path_array
13
+ assert @array.has_path?("**/foo")
14
+ assert @array.has_path?("**/foo=other")
15
+ assert_nil @array.has_path?("**/foobar")
16
+ end
17
+
18
+
19
+ def test_has_path_hash
20
+ assert @hash.has_path?("**/foo")
21
+ assert @hash.has_path?("**/foo=other")
22
+ assert_nil @hash.has_path?("**/foobar")
23
+ end
24
+
25
+
26
+ def test_find_data_array
27
+ out = @array.find_data "**/foo"
28
+ assert_equal({[2, :foo] => "bar", [2, :bar, 2, :foo] => "other"}, out)
29
+ end
30
+
31
+
32
+ def test_find_data_array_empty
33
+ out = @array.find_data "**/foobar"
34
+ assert_equal({}, out)
35
+ end
36
+
37
+
38
+ def test_find_data_array_block
39
+ collected = []
40
+
41
+ @array.find_data "**/foo" do |data, key, path|
42
+ collected << [data, key, path]
43
+ end
44
+
45
+ assert_equal 2, collected.length
46
+ assert collected.include?([@array[2], :foo, [2, :foo]])
47
+ assert collected.include?([@array[2][:bar][2], :foo, [2, :bar, 2, :foo]])
48
+ end
49
+
50
+
51
+ def test_find_data_hash
52
+ out = @hash.find_data "**/foo"
53
+ assert_equal({[:foo] => "bar", [:bar, 2, :foo] => "other"}, out)
54
+ end
55
+
56
+
57
+ def test_find_data_hash_empty
58
+ out = @hash.find_data "**/foobar"
59
+ assert_equal({}, out)
60
+ end
61
+
62
+
63
+ def test_find_data_hash_block
64
+ collected = []
65
+
66
+ @hash.find_data "**/foo" do |data, key, path|
67
+ collected << [data, key, path]
68
+ end
69
+
70
+ assert_equal 2, collected.length
71
+ assert collected.include?([@hash, :foo, [:foo]])
72
+ assert collected.include?([@hash[:bar][2], :foo, [:bar, 2, :foo]])
73
+ end
74
+ end
@@ -284,7 +284,7 @@ class TestDataSet < Test::Unit::TestCase
284
284
 
285
285
  def test_parse_data_path
286
286
  data_path = "key1/key\\/2=value/key*=*value/**=value2/key\\=thing"
287
- key, value, rec, data_path = Kronk::DataSet.parse_data_path data_path
287
+ key, value, rec, data_path = @dataset.parse_data_path data_path
288
288
 
289
289
  assert_equal "key1", key
290
290
  assert_nil value
@@ -295,7 +295,7 @@ class TestDataSet < Test::Unit::TestCase
295
295
 
296
296
  def test_parse_data_path_escaped_slash
297
297
  key, value, rec, data_path =
298
- Kronk::DataSet.parse_data_path \
298
+ @dataset.parse_data_path \
299
299
  "key\\/2=value/key*=*value/**=value2/key\\=thing"
300
300
 
301
301
  assert_equal "key/2", key
@@ -306,9 +306,9 @@ class TestDataSet < Test::Unit::TestCase
306
306
 
307
307
 
308
308
  def test_parse_data_path_wildcard
309
- key, value, rec, data_path = Kronk::DataSet.parse_data_path "*/key1?"
309
+ key, value, rec, data_path = @dataset.parse_data_path "*/key1?"
310
310
 
311
- assert_equal(/^(.*)$/, key)
311
+ assert_equal(/^(.*)$/i, key)
312
312
  assert_nil value
313
313
  assert !rec, "Should not return recursive = true"
314
314
  assert_equal "key1?", data_path
@@ -317,7 +317,7 @@ class TestDataSet < Test::Unit::TestCase
317
317
 
318
318
  def test_parse_data_path_recursive_value
319
319
  key, value, rec, data_path =
320
- Kronk::DataSet.parse_data_path "**=value2/key\\=thing"
320
+ @dataset.parse_data_path "**=value2/key\\=thing"
321
321
 
322
322
  assert_equal(/.*/, key)
323
323
  assert_equal "value2", value
@@ -328,7 +328,7 @@ class TestDataSet < Test::Unit::TestCase
328
328
 
329
329
  def test_parse_data_path_recursive
330
330
  data_path = "**"
331
- key, value, rec, data_path = Kronk::DataSet.parse_data_path "**"
331
+ key, value, rec, data_path = @dataset.parse_data_path "**"
332
332
 
333
333
  assert_equal(/.*/, key)
334
334
  assert_nil value
@@ -339,7 +339,7 @@ class TestDataSet < Test::Unit::TestCase
339
339
 
340
340
  def test_parse_data_path_recursive_key
341
341
  data_path = "**"
342
- key, value, rec, data_path = Kronk::DataSet.parse_data_path "**/key"
342
+ key, value, rec, data_path = @dataset.parse_data_path "**/key"
343
343
 
344
344
  assert_equal "key", key
345
345
  assert_nil value
@@ -349,7 +349,7 @@ class TestDataSet < Test::Unit::TestCase
349
349
 
350
350
 
351
351
  def test_parse_data_path_escaped_equal
352
- key, value, rec, data_path = Kronk::DataSet.parse_data_path "key\\=thing"
352
+ key, value, rec, data_path = @dataset.parse_data_path "key\\=thing"
353
353
 
354
354
  assert_equal "key=thing", key
355
355
  assert_nil value
@@ -359,9 +359,9 @@ class TestDataSet < Test::Unit::TestCase
359
359
 
360
360
 
361
361
  def test_parse_data_path_last
362
- key, value, rec, data_path = Kronk::DataSet.parse_data_path "key*"
362
+ key, value, rec, data_path = @dataset.parse_data_path "key*"
363
363
 
364
- assert_equal(/^(key.*)$/, key)
364
+ assert_equal(/^(key.*)$/i, key)
365
365
  assert_nil value
366
366
  assert !rec, "Should not return recursive = true"
367
367
  assert_equal nil, data_path
@@ -369,7 +369,7 @@ class TestDataSet < Test::Unit::TestCase
369
369
 
370
370
 
371
371
  def test_parse_data_path_empty
372
- key, value, rec, data_path = Kronk::DataSet.parse_data_path ""
372
+ key, value, rec, data_path = @dataset.parse_data_path ""
373
373
 
374
374
  assert_equal nil, key
375
375
  assert_nil value
@@ -379,25 +379,29 @@ class TestDataSet < Test::Unit::TestCase
379
379
 
380
380
 
381
381
  def test_parse_path_item
382
- assert_equal "foo", Kronk::DataSet.parse_path_item("foo")
382
+ assert_equal "foo", @dataset.parse_path_item("foo")
383
383
 
384
- assert_equal(/^(foo.*bar)$/, Kronk::DataSet.parse_path_item("foo*bar"))
385
- assert_equal(/^(foo|bar)$/, Kronk::DataSet.parse_path_item("foo|bar"))
386
- assert_equal(/^(foo.?bar)$/, Kronk::DataSet.parse_path_item("foo?bar"))
384
+ assert_equal(/^(foo.*bar)$/i, @dataset.parse_path_item("foo*bar"))
385
+ assert_equal(/^(foo|bar)$/i, @dataset.parse_path_item("foo|bar"))
386
+ assert_equal(/^(foo.?bar)$/i, @dataset.parse_path_item("foo?bar"))
387
387
 
388
- assert_equal(/^(foo.?\?bar)$/, Kronk::DataSet.parse_path_item("foo?\\?bar"))
389
- assert_equal(/^(key.*)$/, Kronk::DataSet.parse_path_item("key*"))
388
+ assert_equal(/^(foo.?\?bar)$/i, @dataset.parse_path_item("foo?\\?bar"))
389
+ assert_equal(/^(key.*)$/i, @dataset.parse_path_item("key*"))
390
390
 
391
- assert_equal "foo*bar", Kronk::DataSet.parse_path_item("foo\\*bar")
392
- assert_equal "foo|bar", Kronk::DataSet.parse_path_item("foo\\|bar")
393
- assert_equal "foo?bar", Kronk::DataSet.parse_path_item("foo\\?bar")
391
+ assert_equal "foo*bar", @dataset.parse_path_item("foo\\*bar")
392
+ assert_equal "foo|bar", @dataset.parse_path_item("foo\\|bar")
393
+ assert_equal "foo?bar", @dataset.parse_path_item("foo\\?bar")
394
+
395
+ assert_equal 1..3, @dataset.parse_path_item("1..3")
396
+ assert_equal 1...3, @dataset.parse_path_item("1...3")
397
+ assert_equal 3...6, @dataset.parse_path_item("3,3")
394
398
  end
395
399
 
396
400
 
397
401
  def test_yield_data_points
398
402
  keys = []
399
403
 
400
- Kronk::DataSet.yield_data_points @data, /key/ do |data, key|
404
+ @dataset.yield_data_points @data, /key/ do |data, key|
401
405
  keys << key.to_s
402
406
  assert_equal @data, data
403
407
  end
@@ -410,7 +414,7 @@ class TestDataSet < Test::Unit::TestCase
410
414
  keys = []
411
415
  data_points = []
412
416
 
413
- Kronk::DataSet.yield_data_points @data, :findme, nil, true do |data, key|
417
+ @dataset.yield_data_points @data, :findme, nil, true do |data, key|
414
418
  keys << key.to_s
415
419
  data_points << data
416
420
  end
@@ -430,7 +434,7 @@ class TestDataSet < Test::Unit::TestCase
430
434
  keys = []
431
435
  data_points = []
432
436
 
433
- Kronk::DataSet.yield_data_points @data, nil, "findme" do |data, key|
437
+ @dataset.yield_data_points @data, nil, "findme" do |data, key|
434
438
  keys << key.to_s
435
439
  data_points << data
436
440
  end
@@ -438,7 +442,7 @@ class TestDataSet < Test::Unit::TestCase
438
442
  assert keys.empty?
439
443
  assert data_points.empty?
440
444
 
441
- Kronk::DataSet.yield_data_points @data, nil, "findme", true do |data, key|
445
+ @dataset.yield_data_points @data, nil, "findme", true do |data, key|
442
446
  keys << key.to_s
443
447
  data_points << data
444
448
  end
@@ -449,14 +453,19 @@ class TestDataSet < Test::Unit::TestCase
449
453
 
450
454
 
451
455
  def test_match_data_item
452
- assert Kronk::DataSet.match_data_item(:key, "key")
453
- assert Kronk::DataSet.match_data_item("key", :key)
456
+ assert @dataset.match_data_item(:key, "key")
457
+ assert @dataset.match_data_item("key", :key)
458
+
459
+ assert @dataset.match_data_item(/key/, "foo_key")
460
+ assert !@dataset.match_data_item("foo_key", /key/)
461
+ assert @dataset.match_data_item(/key/, /key/)
454
462
 
455
- assert Kronk::DataSet.match_data_item(/key/, "foo_key")
456
- assert !Kronk::DataSet.match_data_item("foo_key", /key/)
463
+ assert @dataset.match_data_item(nil, "foo_key")
464
+ assert !@dataset.match_data_item("foo_key", nil)
457
465
 
458
- assert Kronk::DataSet.match_data_item(nil, "foo_key")
459
- assert !Kronk::DataSet.match_data_item("foo_key", nil)
466
+ assert @dataset.match_data_item(1..3, 1)
467
+ assert !@dataset.match_data_item(1, 1..3)
468
+ assert @dataset.match_data_item(1..3, 1..3)
460
469
  end
461
470
 
462
471
 
@@ -470,7 +479,7 @@ class TestDataSet < Test::Unit::TestCase
470
479
  keys = []
471
480
  values = []
472
481
 
473
- Kronk::DataSet.each_data_item hash do |key, val|
482
+ @dataset.each_data_item hash do |key, val|
474
483
  keys << key
475
484
  values << val
476
485
  end
@@ -486,7 +495,7 @@ class TestDataSet < Test::Unit::TestCase
486
495
  keys = []
487
496
  values = []
488
497
 
489
- Kronk::DataSet.each_data_item ary do |key, val|
498
+ @dataset.each_data_item ary do |key, val|
490
499
  keys << key
491
500
  values << val
492
501
  end