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.
Files changed (2) hide show
  1. data/test/composable_test.rb +90 -0
  2. 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.6
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: "0"
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.2.0
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