kinda-composable 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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