Skip to content

Commit

Permalink
Added some tests for the StructureProcessor.
Browse files Browse the repository at this point in the history
  • Loading branch information
adamsanderson committed May 19, 2008
1 parent aeb90aa commit df8c86f
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 2 deletions.
8 changes: 6 additions & 2 deletions ruby_diff.rb
@@ -1,13 +1,17 @@
#!/usr/bin/env ruby

require 'rubygems'
# ParseTree
require 'parse_tree'
require 'sexp_processor'
require 'unified_ruby'
# Standard library
require 'set'
require 'pp'
require 'lib/structure_processor'
require 'lib/code_comparison'
# RubyDiff
%w(code_comparison structure_processor).each do |name|
require File.expand_path(File.dirname(__FILE__) + "/lib/#{name}")
end

class Unifier < SexpProcessor
include UnifiedRuby
Expand Down
75 changes: 75 additions & 0 deletions test/structure_processor_test.rb
@@ -0,0 +1,75 @@
require 'test/unit'
require 'test/unit/testcase'
require File.expand_path(File.dirname(__FILE__) + "/../ruby_diff")

class StructureProcessorTestCase < Test::Unit::TestCase
def setup

end

def test_instance_method
assert_signatures <<-CODE, ["A#method_1"]
class A
def method_1
end
end
CODE
end

def test_instance_method_with_module
assert_signatures <<-CODE, ["B::A#method_1"]
module B
class A
def method_1
end
end
end
CODE
end

def test_unscoped_method
assert_signatures <<-CODE, ["#method_1"]
def method_1
end
CODE
end

def test_class_method_self
assert_signatures <<-CODE, ["A.method_1"]
class A
def self.method_1
end
end
CODE
end

def test_class_method_self_explicit
assert_signatures <<-CODE, ["A.method_1"]
class A
def A.method_1
end
end
CODE
end

def test_class_method_append_self
assert_signatures <<-CODE, ["A.method_1"]
class A
class << self
def method_1
end
end
end
CODE
end

def assert_signatures(code, signatures)
sexp = ParseTree.new.parse_tree_for_string(code)
processor = StructureProcessor.new()
processor.process(* sexp)

found_signatures = processor.found_methods.keys.map{|key| key.to_s }.sort
assert_equal signatures.sort, found_signatures
end

end

0 comments on commit df8c86f

Please sign in to comment.