kinda-composable 0.0.6 → 0.0.7
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.
- data/test/composable_test.rb +90 -0
- metadata +6 -5
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/ruby19
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'test/unit'
|
5
|
+
|
6
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')).uniq!
|
7
|
+
require 'kinda-composable'
|
8
|
+
|
9
|
+
class TestComposable < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@grand_parent_class = Class.new do
|
12
|
+
include Kinda::Composable
|
13
|
+
end
|
14
|
+
|
15
|
+
@parent_class = Class.new do
|
16
|
+
include Kinda::Composable
|
17
|
+
end
|
18
|
+
|
19
|
+
@child_class = Class.new do
|
20
|
+
include Kinda::Composable
|
21
|
+
end
|
22
|
+
|
23
|
+
@grand_parent = @grand_parent_class.new
|
24
|
+
@parent = @parent_class.new
|
25
|
+
@parent2 = @parent_class.new
|
26
|
+
@child = @child_class.new
|
27
|
+
@child2 = @child_class.new
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_add_child
|
31
|
+
@parent.add_child(@child)
|
32
|
+
assert @parent.children.size == 1
|
33
|
+
assert @parent.children.first == @child
|
34
|
+
assert @child.parent == @parent
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_add_children
|
38
|
+
@parent.add_child(@child)
|
39
|
+
assert @parent.children.size == 1
|
40
|
+
@parent.add_child(@child) # same child added twice
|
41
|
+
assert @parent.children.size == 1
|
42
|
+
@parent.add_child(@child2)
|
43
|
+
assert @parent.children.size == 2
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_children?
|
47
|
+
assert !@parent.children?
|
48
|
+
@parent.add_child(@child)
|
49
|
+
assert @parent.children?
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_remove_children
|
53
|
+
@parent.add_child(@child)
|
54
|
+
@parent.add_child(@child2)
|
55
|
+
@parent.remove_child(@child)
|
56
|
+
assert @child.parent == nil
|
57
|
+
assert @parent.children.first == @child2
|
58
|
+
assert @child2.parent == @parent
|
59
|
+
@parent.remove_child(@child2)
|
60
|
+
assert @child2.parent == nil
|
61
|
+
assert !@parent.children?
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_set_parent
|
65
|
+
@child.parent = @parent
|
66
|
+
assert @child.parent == @parent
|
67
|
+
assert @parent.children.size == 1
|
68
|
+
assert @parent.children.first == @child
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_reset_parent
|
72
|
+
@child.parent = @parent
|
73
|
+
assert @child.parent == @parent
|
74
|
+
@child.parent = @parent2
|
75
|
+
assert !@parent.children?
|
76
|
+
assert @child.parent == @parent2
|
77
|
+
assert @parent2.children.size == 1
|
78
|
+
assert @parent2.children.first == @child
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_parent_search
|
82
|
+
@grand_parent.add_child(@parent)
|
83
|
+
@parent.add_child(@child)
|
84
|
+
assert @child.parent == @parent
|
85
|
+
assert @child.parent(@parent_class) == @parent
|
86
|
+
assert @child.parent(@grand_parent_class) == @grand_parent
|
87
|
+
assert @parent.parent(@child_class) == nil
|
88
|
+
assert @grand_parent.parent(Object) == nil
|
89
|
+
end
|
90
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kinda-composable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Vila
|
@@ -36,6 +36,7 @@ files:
|
|
36
36
|
- README.rdoc
|
37
37
|
has_rdoc: true
|
38
38
|
homepage: http://github.com/kinda/composable
|
39
|
+
licenses:
|
39
40
|
post_install_message:
|
40
41
|
rdoc_options: []
|
41
42
|
|
@@ -45,7 +46,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
46
|
requirements:
|
46
47
|
- - ">="
|
47
48
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
49
|
+
version: 1.9.1
|
49
50
|
version:
|
50
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
@@ -56,9 +57,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
57
|
requirements: []
|
57
58
|
|
58
59
|
rubyforge_project: kinda-composable
|
59
|
-
rubygems_version: 1.
|
60
|
+
rubygems_version: 1.3.5
|
60
61
|
signing_key:
|
61
62
|
specification_version: 2
|
62
63
|
summary: Simple implementation of the composite design pattern
|
63
|
-
test_files:
|
64
|
-
|
64
|
+
test_files:
|
65
|
+
- test/composable_test.rb
|