tighten up Hub and add comments
[god.git] / test / test_dependency_graph.rb
blob0f5cab9815596b4d4d1c0568077520564997bc7e
1 require File.dirname(__FILE__) + '/helper'
3 class TestDependencyGraph < Test::Unit::TestCase
4   def setup
5     @dg = DependencyGraph.new
6   end
7   
8   # new
9   
10   def test_new_should_accept_zero_arguments
11     assert @dg.instance_of?(DependencyGraph)
12   end
13   
14   # add
15   
16   def test_add_should_create_and_store_two_new_nodes
17     @dg.add('foo', 'bar')
18     assert_equal 2, @dg.nodes.size
19     assert @dg.nodes['foo'].instance_of?(DependencyGraph::Node)
20     assert @dg.nodes['bar'].instance_of?(DependencyGraph::Node)
21   end
22   
23   def test_add_should_record_dependency
24     @dg.add('foo', 'bar')
25     assert_equal 1, @dg.nodes['foo'].dependencies.size
26     assert_equal @dg.nodes['bar'], @dg.nodes['foo'].dependencies.first
27   end
28   
29   def test_add_should_ignore_dups
30     @dg.add('foo', 'bar')
31     @dg.add('foo', 'bar')
32     assert_equal 2, @dg.nodes.size    
33     assert_equal 1, @dg.nodes['foo'].dependencies.size
34   end
35 end
38 class TestDependencyGraphNode < Test::Unit::TestCase
39   def setup
40     @foo = DependencyGraph::Node.new('foo')
41     @bar = DependencyGraph::Node.new('bar')
42   end
43   
44   # new
45   
46   def test_new_should_accept_zero_arguments
47     assert @foo.instance_of?(DependencyGraph::Node)
48   end
49   
50   # add
51   
52   def test_add_should_store_node_as_dependency
53     @foo.add(@bar)
54     assert_equal 1, @foo.dependencies.size
55   end
56   
57   # has_node?
58   
59   def test_has_node
60     assert @foo.has_node?(@foo)
61   end
62 end