DepGraph 0.8.0 → 0.9.0

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/spec/spec_helper.rb CHANGED
@@ -11,10 +11,10 @@ dir = File.expand_path(File.dirname(__FILE__))
11
11
  $LOAD_PATH.unshift("#{dir}/")
12
12
  $LOAD_PATH.unshift("#{dir}/../lib")
13
13
 
14
- require 'dependable_filter_manager'
15
- require 'graph'
14
+ require 'dependency_types_manager'
15
+ require 'graph_image_creator'
16
16
  def dependency_types
17
- DepGraph::DependableFilterManager.types
17
+ DepGraph::DependencyTypesManager.types
18
18
  end
19
19
 
20
20
  def non_empty_file_created(file_name)
@@ -22,102 +22,164 @@ def non_empty_file_created(file_name)
22
22
  end
23
23
 
24
24
  def non_existent_filter_type
25
- DependableFilterManager.types.join + 'thisdoesntexist'
25
+ DependencyTypesManager.types.join + 'thisdoesntexist'
26
26
  end
27
27
 
28
28
  ########## Stubs ###########
29
- class MockDependentFinder
30
- def initialize(dependents)
31
- @dependents = dependents
29
+ class MockNodeFinder
30
+ def initialize(nodes)
31
+ @nodes = nodes
32
32
  end
33
33
 
34
- def get_dependents
35
- @dependents
34
+ def get_nodes
35
+ @nodes
36
36
  end
37
37
  end
38
38
 
39
- class NoOutputGraph < DepGraph::Graph
39
+ class NoOutputGraph < DepGraph::GraphImageCreator
40
40
  def initialize
41
41
  super
42
42
  output_generation = lambda { true }
43
43
  end
44
44
  end
45
45
 
46
+ ########## graph helper methods
47
+
48
+ def create_empty_graph
49
+ GraphImageCreator.new
50
+ end
51
+
52
+ def create_graph_with_2_nodes_and_1_edge
53
+ graph = create_empty_graph
54
+ graph.add_node('node 1')
55
+ graph.add_node('node 2')
56
+ graph.add_edge('node 1', 'node 2')
57
+ return graph
58
+ end
59
+
60
+ def create_graph_with_2_nodes_and_0_edges
61
+ graph = create_empty_graph
62
+ graph.add_node('node 1')
63
+ graph.add_node('node 2')
64
+ return graph
65
+ end
66
+
67
+ def no_output_generation
68
+ lambda {true}
69
+ end
70
+
71
+ def dependency_exists?(graph, from, to)
72
+ graph.has_node?(from) and graph.has_node?(to) and graph.has_edge?(from, to)
73
+ end
74
+
46
75
 
47
76
  ########## graph creator tests helper methods ###########
48
- def create_graph_creator_with_no_dependents
77
+ def create_graph_creator_with_no_nodes
49
78
  graph_creator = GraphCreator.new
50
- graph_creator.dependent_finder = MockDependentFinder.new([])
79
+ graph_creator.node_finder = MockNodeFinder.new([])
51
80
 
52
81
  return graph_creator
53
82
  end
54
83
 
55
- def create_graph_creator_with_only_one_dependent
84
+ def create_graph_creator_with_only_one_node
56
85
  graph_creator = GraphCreator.new
57
- graph_creator.dependent_finder = MockDependentFinder.new([Dependent.new('dependent/path')])
86
+ graph_creator.node_finder = MockNodeFinder.new([Node.new('node/path')])
58
87
 
59
88
  return graph_creator
60
89
  end
61
90
 
62
- def create_graph_creator_with_three_dependents_that_are_equal
63
- dependent1 = Dependent.new('directory/path')
64
- dependent2 = Dependent.new('directory/path')
65
- dependent3 = Dependent.new('directory/anotherdir/path')
91
+ def create_2_connected_plus_2_disconnected_nodes_graph_creator
92
+ node1 = Node.new('directory/path1')
93
+ node2 = Node.new('directory/path2')
94
+ node3 = Node.new('directory/anotherdir/path3')
95
+ node4 = Node.new('directory2/path4')
96
+ node5 = Node.new('directory2/anotherdir/path5')
97
+ node1.depends_on(node2)
98
+ node3.depends_on(node5)
99
+ node4.depends_on(node5)
100
+
101
+ graph_creator = GraphCreator.new
102
+ graph_creator.node_finder = MockNodeFinder.new([node1, node2, node3, node4])
103
+
104
+ return graph_creator
105
+ end
106
+
107
+ def create_graph_creator_with_three_nodes_that_are_equal
108
+ node1 = Node.new('directory/path')
109
+ node2 = Node.new('directory/path')
110
+ node3 = Node.new('directory/anotherdir/path')
66
111
 
67
112
  graph_creator = GraphCreator.new
68
- graph_creator.dependent_finder = MockDependentFinder.new([dependent1, dependent2, dependent3])
113
+ graph_creator.node_finder = MockNodeFinder.new([node1, node2, node3])
69
114
 
70
115
  return graph_creator
71
116
  end
72
117
 
73
- def create_graph_creator_with_two_dependents_and_no_dependencies
74
- dependent1 = Dependent.new('dependent1/path1')
75
- dependent2 = Dependent.new('dependent2/path2')
118
+ def create_graph_creator_with_two_nodes_and_no_dependencies
119
+ node1 = Node.new('node1/path1')
120
+ node2 = Node.new('node2/path2')
76
121
 
77
122
  graph_creator = GraphCreator.new
78
- graph_creator.dependent_finder = MockDependentFinder.new([dependent1, dependent2])
123
+ graph_creator.node_finder = MockNodeFinder.new([node1, node2])
79
124
 
80
125
  return graph_creator
81
126
  end
82
127
 
83
- def create_dependency_chain_graph_creator(*nodes)
84
- dependents = []
128
+ def create_dependency_chain_graph_creator(*node_names)
129
+ nodes = []
85
130
 
86
- nodes.each do |node|
87
- dependents << Dependent.new(node)
131
+ node_names.each do |node|
132
+ nodes << Node.new(node)
88
133
  end
89
134
 
90
- dependents.each_cons(2) do |dependent, dependable|
91
- dependent.depends_on(dependable)
135
+ nodes.each_cons(2) do |node, dependable|
136
+ node.depends_on(dependable)
92
137
  end
93
138
 
94
139
  graph_creator = GraphCreator.new(:none)
95
- graph_creator.dependent_finder = MockDependentFinder.new(dependents)
140
+ graph_creator.node_finder = MockNodeFinder.new(nodes)
96
141
 
97
142
  return graph_creator
98
143
  end
99
144
 
100
145
  def create_graph_creator_with_two_nodes_and_one_dependency
101
- return create_dependency_chain_graph_creator('dependent1/path1.csproj', 'dependent2/path2.dll')
146
+ return create_dependency_chain_graph_creator('node1/path1.csproj', 'node2/path2.dll')
147
+ end
148
+
149
+ def create_2_node_graph_creator_with_1_normal_and_1_orphan_dependency
150
+ node1 = Node.new('file1.csproj')
151
+ node2 = Node.new('file2.csproj')
152
+ node1.depends_on(node2)
153
+ node2.depends_on('non existent file3')
154
+
155
+ graph_creator = GraphCreator.new(:none)
156
+ graph_creator.node_finder = MockNodeFinder.new([node1, node2])
157
+
158
+ return graph_creator
102
159
  end
103
160
 
104
- def create_graph_creator_with_two_nodes_and_one_orphan_dependency
105
- dependent1 = Dependent.new('file1.csproj')
106
- dependent2 = Dependent.new('file2.csproj')
107
- dependent2.depends_on('file3')
161
+ def create_2_connected_and_1_disconnected_node_with_an_orphan_dependency_graph_creator
162
+ node1 = Node.new('file1.csproj')
163
+ node2 = Node.new('file2.csproj')
164
+ node3 = Node.new('file3.csproj')
165
+ node4 = Node.new('file4.csproj')
166
+
167
+ node1.depends_on(node2)
168
+
169
+ #create an orphan dependency of disconnected node file3 because node4 will not be included in the graph
170
+ node3.depends_on(node4)
108
171
 
109
172
  graph_creator = GraphCreator.new(:none)
110
- graph_creator.dependent_finder = MockDependentFinder.new([dependent1, dependent2])
173
+ graph_creator.node_finder = MockNodeFinder.new([node1, node2, node3])
111
174
 
112
175
  return graph_creator
113
176
  end
114
177
 
115
178
  def invalid_graph_creators
116
179
  {
117
- 'graph creator with no dependents' => create_graph_creator_with_no_dependents,
118
- 'graph creator with only one dependent' => create_graph_creator_with_only_one_dependent,
119
- 'graph creator with three dependents that are equal' => create_graph_creator_with_three_dependents_that_are_equal,
120
- 'graph creator with an orphan depencency' => create_graph_creator_with_two_nodes_and_one_orphan_dependency
180
+ 'graph creator with no nodes' => create_graph_creator_with_no_nodes,
181
+ 'graph creator with only one node' => create_graph_creator_with_only_one_node,
182
+ 'graph creator with three nodes that are equal' => create_graph_creator_with_three_nodes_that_are_equal,
121
183
  }
122
184
  end
123
185
 
@@ -0,0 +1,5 @@
1
+ --format
2
+ specdoc
3
+ --timeout
4
+ 20
5
+ --diff
@@ -8,7 +8,7 @@ task :deploy => [:check_version, :website, :release] do
8
8
  end
9
9
 
10
10
  desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
- task :local_deploy => [:spec, :website_generate, :install_gem]
11
+ task :local_deploy => [:allspec, :website_generate, :install_gem]
12
12
 
13
13
  task :check_version do
14
14
  unless ENV['VERSION']
data/tasks/rspec.rake CHANGED
@@ -14,10 +14,22 @@ EOS
14
14
  exit(0)
15
15
  end
16
16
 
17
- desc "Run the specs under spec/models"
18
- Spec::Rake::SpecTask.new do |t|
19
- t.spec_opts = ['--options', "spec/spec.opts"]
20
- t.spec_files = FileList['spec/*_spec.rb']
17
+ desc "Run the specs under spec/unittests"
18
+ Spec::Rake::SpecTask.new('spec') do |t|
19
+ t.spec_opts = ['--options', "spec/unit_spec.opts"]
20
+ t.spec_files = FileList['spec/unittests/*_spec.rb']
21
+ end
22
+
23
+ desc "Run the specs under spec/integrationtests"
24
+ Spec::Rake::SpecTask.new('ispec') do |t|
25
+ t.spec_opts = ['--options', "spec/integration_spec.opts"]
26
+ t.spec_files = FileList['spec/integrationtests/*_spec.rb']
27
+ end
28
+
29
+ desc "Run the specs under spec"
30
+ Spec::Rake::SpecTask.new('allspec') do |t|
31
+ t.spec_opts = ['--options', "spec/spec.opts"]
32
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
33
  t.rcov = true
22
34
  t.rcov_opts = ['--text-summary']
23
- end
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DepGraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Daniel Cadenas Ni\xF3n"
@@ -9,13 +9,13 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-13 00:00:00 -03:00
12
+ date: 2008-03-16 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
16
  description: A tool to create dependency graph images from source code directories
17
17
  email:
18
- - depgraph-devel@rubyforge.org
18
+ - dcadenas@gmail.com
19
19
  executables:
20
20
  - depgraph
21
21
  extensions: []
@@ -25,7 +25,6 @@ extra_rdoc_files:
25
25
  - License.txt
26
26
  - Manifest.txt
27
27
  - README.txt
28
- - todo.txt
29
28
  files:
30
29
  - History.txt
31
30
  - License.txt
@@ -36,12 +35,13 @@ files:
36
35
  - config/hoe.rb
37
36
  - config/requirements.rb
38
37
  - lib/DepGraph/version.rb
39
- - lib/dependable_filter_manager.rb
38
+ - lib/dependency_types_manager.rb
40
39
  - lib/dependency_types.yaml
41
- - lib/dependent.rb
42
- - lib/file_system_dependent_finder.rb
43
- - lib/graph.rb
40
+ - lib/node.rb
41
+ - lib/file_system_node_finder.rb
42
+ - lib/graph_image_creator.rb
44
43
  - lib/graph_creator.rb
44
+ - lib/nodefinders/test_node_finder.rb
45
45
  - script/destroy
46
46
  - script/destroy.cmd
47
47
  - script/generate
@@ -49,19 +49,23 @@ files:
49
49
  - script/txt2html
50
50
  - script/txt2html.cmd
51
51
  - setup.rb
52
- - spec/dependable_filter_manager_spec.rb
53
- - spec/dependent_spec.rb
54
- - spec/depgraph_spec.rb
55
- - spec/file_system_dependent_finder_spec.rb
56
- - spec/graph_creator_spec.rb
57
- - spec/graph_spec.rb
52
+ - spec/IntegrationTests/depgraph_spec.rb
53
+ - spec/IntegrationTests/file_system_node_finder_spec.rb
54
+ - spec/IntegrationTests/graph_creator_spec.rb
55
+ - spec/IntegrationTests/graph_image_creator_spec.rb
56
+ - spec/UnitTests/dependency_types_manager_spec.rb
57
+ - spec/UnitTests/node_spec.rb
58
+ - spec/UnitTests/graph_creator_spec.rb
59
+ - spec/UnitTests/graph_image_creator_spec.rb
60
+ - spec/UnitTests/file_system_node_finder_spec.rb
61
+ - spec/integration_spec.opts
58
62
  - spec/spec.opts
59
63
  - spec/spec_helper.rb
64
+ - spec/unit_spec.opts
60
65
  - tasks/deployment.rake
61
66
  - tasks/environment.rake
62
67
  - tasks/rspec.rake
63
68
  - tasks/website.rake
64
- - todo.txt
65
69
  has_rdoc: true
66
70
  homepage: http://DepGraph.rubyforge.org
67
71
  post_install_message:
@@ -90,10 +94,13 @@ signing_key:
90
94
  specification_version: 2
91
95
  summary: A tool to create dependency graph images from source code directories
92
96
  test_files:
93
- - spec/dependable_filter_manager_spec.rb
94
- - spec/dependent_spec.rb
95
- - spec/depgraph_spec.rb
96
- - spec/file_system_dependent_finder_spec.rb
97
- - spec/graph_creator_spec.rb
98
- - spec/graph_spec.rb
97
+ - spec/IntegrationTests/depgraph_spec.rb
98
+ - spec/IntegrationTests/file_system_node_finder_spec.rb
99
+ - spec/IntegrationTests/graph_creator_spec.rb
100
+ - spec/IntegrationTests/graph_image_creator_spec.rb
99
101
  - spec/spec_helper.rb
102
+ - spec/UnitTests/dependency_types_manager_spec.rb
103
+ - spec/UnitTests/file_system_node_finder_spec.rb
104
+ - spec/UnitTests/graph_creator_spec.rb
105
+ - spec/UnitTests/graph_image_creator_spec.rb
106
+ - spec/UnitTests/node_spec.rb
data/lib/dependent.rb DELETED
@@ -1,73 +0,0 @@
1
- module DepGraph
2
-
3
- #A Dependent knows its dependables and knows how to get them from a string
4
- class Dependent
5
- include Comparable
6
- attr_reader :name
7
-
8
- def initialize(dependent_uri, dependent_type = :anything)
9
- fail 'Empty uris are not allowed' if dependent_uri.empty?
10
- @name = remove_extension dependent_uri
11
- @dependencies = []
12
-
13
- load_filter_type(dependent_type)
14
- end
15
-
16
- def load_filter_type(dependent_type)
17
- dependable_filter_manager = DependableFilterManager.new dependent_type
18
- @dependable_filter = dependable_filter_manager.dependable_regexp
19
- @dependable_filter_capture_group_index = dependable_filter_manager.dependable_regexp_capture_group_index
20
- end
21
-
22
- def to_str
23
- @name
24
- end
25
-
26
- def <=> other_dependent
27
- @name <=> other_dependent.to_str
28
- end
29
-
30
- def eql? other_dependent
31
- (self <=> other_dependent) == 0
32
- end
33
-
34
- def hash
35
- @name.hash
36
- end
37
-
38
- def remove_extension file_path
39
- file_extension_regexp = /\.[^\.]+$/
40
- return File.basename(file_path).gsub(file_extension_regexp, '')
41
- end
42
-
43
- def depends_on dependent
44
- @dependencies << dependent
45
- end
46
-
47
- def depends_on? dependent
48
- @dependencies.include? dependent
49
- end
50
-
51
- def dependencies
52
- @dependencies
53
- end
54
-
55
- def dependable_filter= filter
56
- @dependable_filter = filter
57
- @dependable_filter_capture_group_index = 0
58
- end
59
-
60
- def dependable_filter_capture_group_index= group_index
61
- @dependable_filter_capture_group_index = group_index
62
- end
63
-
64
- def load_dependencies_from_string(dependencies_string)
65
- fail 'The dependable finder Regexp was not set' unless @dependable_filter
66
-
67
- dependencies_string.scan(@dependable_filter).each do |matches|
68
- dependable = (matches.respond_to? :to_ary) ? matches[@dependable_filter_capture_group_index] : matches
69
- depends_on(dependable) unless depends_on? dependable
70
- end
71
- end
72
- end
73
- end
@@ -1,44 +0,0 @@
1
- require 'dependent'
2
- require 'dependable_filter_manager'
3
-
4
- module DepGraph
5
- class FileSystemDependentFinder
6
- attr_reader :dependent_filter, :dependable_filter, :dependable_filter_capture_group_index
7
- attr_writer :dirs
8
-
9
- def initialize(dependent_type)
10
-
11
- dependable_filter_manager = DependableFilterManager.new dependent_type
12
- @file_name_pattern = dependable_filter_manager.file_name_pattern
13
- @dependable_filter = dependable_filter_manager.dependable_regexp
14
- @dependable_filter_capture_group_index = dependable_filter_manager.dependable_regexp_capture_group_index
15
- @dirs = ['.']
16
- end
17
-
18
- def get_dependents
19
- files = []
20
- @dirs.each do |dir|
21
- files += Dir.glob(dir.strip + '/**/' + @file_name_pattern)
22
- end
23
-
24
- dependents = []
25
- files.each { |file| dependents << create_dependent_from_file(file) }
26
- return dependents
27
- end
28
-
29
- private
30
- def create_dependent_from_file file
31
- dependent = Dependent.new file
32
- dependent.dependable_filter = @dependable_filter
33
- dependent.dependable_filter_capture_group_index = @dependable_filter_capture_group_index
34
-
35
- File.open(file) do |f|
36
- f.each_line do |line|
37
- dependent.load_dependencies_from_string(line)
38
- end
39
- end
40
-
41
- return dependent
42
- end
43
- end
44
- end
@@ -1,102 +0,0 @@
1
- require File.dirname(__FILE__) + "/spec_helper"
2
- require 'stringio'
3
- require 'dependent'
4
- require 'rubygems'
5
- require 'spec'
6
- include DepGraph
7
-
8
- describe Dependent do
9
- it 'should not accept empty uris in the constructor' do
10
- lambda{Dependent.new('')}.should raise_error
11
- end
12
-
13
- it 'should have a non empty name' do
14
- dependent = Dependent.new('a')
15
- dependent.name.should_not be_empty
16
- end
17
-
18
- it 'should have the name of the file specified in the constructor excluding the extension' do
19
- dependent = Dependent.new('/directory1/directory2/file.name.ext')
20
- dependent.name.should == 'file.name'
21
- end
22
-
23
- it 'should be equal to another dependent with the same name' do
24
- dependent1 = Dependent.new('abc')
25
- dependent2 = Dependent.new('abc')
26
- dependent3 = Dependent.new('abd')
27
-
28
- dependent1.should == dependent2
29
- dependent1.should be_eql(dependent2)
30
-
31
- dependent1.should_not == dependent3
32
- dependent1.should_not be_eql(dependent3)
33
-
34
- dependent2.should_not == dependent3
35
- dependent2.should_not be_eql(dependent3)
36
- end
37
-
38
- it 'should allow setting dependent dependents' do
39
- dependent = Dependent.new('a')
40
- dependent.depends_on('b')
41
-
42
- dependent.dependencies.size.should == 1
43
- end
44
-
45
- it 'should allow querying for a dependent dependent' do
46
- dependent = Dependent.new('a')
47
- dependent.depends_on('b')
48
-
49
- dependent.depends_on?('b').should be_true
50
- dependent.depends_on?('c').should be_false
51
- end
52
-
53
- it 'should be able to get the dependencies to csproj and dll files from a string' do
54
- dependent = Dependent.new('a', :csproj)
55
- dependencies_string = 'from this string the dependable to "\\a.dir\\dependent1.csproj", \n"\\tgg.hyhy\\dependent2.dll" and "dependent3.csproj" should be found'
56
-
57
- dependent.load_dependencies_from_string(dependencies_string)
58
-
59
- dependent.dependencies.should == ["dependent1", "dependent2", "dependent3"]
60
- end
61
-
62
- it 'should be able to use a custom regexp filter to get the dependent dependencies from a string' do
63
- dependent = Dependent.new('a')
64
- dependencies_string = 'from this string the dependable to dependent.csproj \n and dependent1.dll should be found'
65
- dependent.dependable_filter = /\s([^\s]+)\.(csproj|dll)[^\w]/
66
- dependent.dependable_filter_capture_group_index = 0
67
-
68
- dependent.load_dependencies_from_string(dependencies_string)
69
-
70
- dependent.dependencies.should == ["dependent", "dependent1"]
71
- end
72
-
73
- it 'should be able to select the capture group that must be used in the dependable custom regexp filter' do
74
- dependent = Dependent.new('a')
75
- dependencies_string = 'from this string the dependable to prefix.dependent.csproj \n and prefix.dependent1.dll should be found'
76
- dependent.dependable_filter = /\s(prefix\.)([^\s]+)\.(csproj|dll)[^\w]/
77
- dependent.dependable_filter_capture_group_index = 1
78
-
79
- dependent.load_dependencies_from_string(dependencies_string)
80
-
81
- dependent.dependencies.should == ["dependent", "dependent1"]
82
- end
83
-
84
- it 'should ignore repeated dependencies in the string' do
85
- dependent = Dependent.new('a', :csproj)
86
- dependencies_string = 'this string has only one dependable that is repeated 3 times: "\\a.dir\\dependent.csproj", \n"\\tgg.hyhy\\dependent.dll" and "dependent.csproj"'
87
-
88
- dependent.load_dependencies_from_string(dependencies_string)
89
-
90
- dependent.dependencies.should == ["dependent"]
91
- end
92
-
93
- it 'should ignore the capture group index if the dependable filter regexp has no capture groups' do
94
- dependent = Dependent.new('a')
95
- dependent.dependable_filter = /dep[0-9]/
96
- dependent.dependable_filter_capture_group_index = 1
97
-
98
- dependent.load_dependencies_from_string('dep1 is in the first line \n in the second dep2')
99
-
100
- dependent.dependencies.size.should == 2
101
- end
102
- end
@@ -1,48 +0,0 @@
1
- require File.dirname(__FILE__) + "/spec_helper"
2
- require 'file_system_dependent_finder'
3
- require 'rubygems'
4
- gem 'filetesthelper'
5
- require 'filetesthelper'
6
- require 'spec'
7
-
8
- include FileTestHelper
9
- include DepGraph
10
-
11
- describe FileSystemDependentFinder, '(integration tests)' do
12
- it 'should search only in the specified directories' do
13
- with_files('good1/file1' => '', 'good2/file2' => '', 'bad/file3' => '') do
14
- dependent_finder = FileSystemDependentFinder.new(non_existent_filter_type)
15
- dependent_finder.dirs = ['good1', 'good2']
16
-
17
- dependents = dependent_finder.get_dependents
18
- dependents.should == ['file1', 'file2']
19
- end
20
- end
21
- end
22
-
23
- #To setup the test files for each filter type, include three sample dependent files
24
- #and make the first file, named 'a' depend on the next two, named 'b' and 'c'
25
- test_set = {
26
- :ruby_requires => {'a.rb' => 'require "b"\nrequire "c"', 'dir/b.rb' => '', 'dir/c.rb' => '', 'not_a_ruby_file' => ''},
27
- :csproj => {'a.csproj' => '"b.csproj"\n"c.csproj"', 'dir/b.csproj' => '', 'dir/c.csproj' => '', 'not_a_csproj_file' => ''}
28
- }
29
-
30
- dependency_types.each do |filter_type|
31
- test_files = test_set[filter_type]
32
-
33
- describe FileSystemDependentFinder, "for #{filter_type.to_s} (integration tests)" do
34
- it "should find the correct number of dependents" do
35
- with_files(test_files) do
36
- dependents = FileSystemDependentFinder.new(filter_type).get_dependents
37
- dependents.should == ['a', 'b', 'c']
38
- end
39
- end
40
- it "should correctly find the dependencies from each file" do
41
- with_files(test_files) do
42
- dependent = FileSystemDependentFinder.new(filter_type).get_dependents[0]
43
- dependent.should_not be_nil
44
- dependent.dependencies.should == ['b', 'c']
45
- end
46
- end
47
- end
48
- end