Loading Rakefile +9 −1 Original line number Diff line number Diff line require 'rubygems' require 'rake' $LOAD_PATH.unshift File.expand_path("../lib", __FILE__) require 'rake/testtask' Rake::TestTask.new(:test) do |test| test.libs << 'lib' << 'test' test.pattern = 'test/**/tc_*.rb' test.verbose = true end require 'spec' require 'spec/rake/spectask' Spec::Rake::SpecTask.new(:spec) do |spec| spec.spec_opts = ["--color"] spec.spec_files = FileList["spec/**/*_spec.rb"] end task :default => :test spec/class_spec.rb 0 → 100644 +85 −0 Original line number Diff line number Diff line require "jsduck/class" describe Class do describe "#members_hash" do before do @classes = {} @parent = JsDuck::Class.new({ :name => "ParentClass", :method => [ {:name => "baz"}, {:name => "foo"}, {:name => "frank", :private => true}, ] }, @classes); @classes["ParentClass"] = @parent @child = JsDuck::Class.new({ :name => "ChildClass", :extends => "ParentClass", :method => [ {:name => "foo"}, {:name => "bar"}, {:name => "zappa", :private => true}, ] }, @classes); @classes["ChildClass"] = @child end it "returns all public members in current class" do ms = @parent.members_hash(:method) ms.values.length.should == 2 ms["foo"][:member].should == "ParentClass" ms["baz"][:member].should == "ParentClass" end it "also returns all public members in parent class" do ms = @child.members_hash(:method) ms.values.length.should == 3 ms["foo"][:member].should == "ChildClass" ms["bar"][:member].should == "ChildClass" ms["baz"][:member].should == "ParentClass" end end describe "#inherits_from" do before do @classes = {} @parent = JsDuck::Class.new({ :name => "Parent", }, @classes); @classes["Parent"] = @parent @child = JsDuck::Class.new({ :name => "Child", :extends => "Parent", }, @classes); @classes["Child"] = @child @grandchild = JsDuck::Class.new({ :name => "GrandChild", :extends => "Child", }, @classes); @classes["GrandChild"] = @grandchild end it "true when asked about itself" do @parent.inherits_from?("Parent").should == true end it "false when asked about class it's not inheriting from" do @parent.inherits_from?("Child").should == false end it "true when asked about direct parent" do @child.inherits_from?("Parent").should == true end it "true when asked about grandparent" do @grandchild.inherits_from?("Parent").should == true end end end test/tc_class.rbdeleted 100644 → 0 +0 −94 Original line number Diff line number Diff line require "jsduck/class" require "test/unit" class TestClass < Test::Unit::TestCase def test_local_members cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar"}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert_equal("MyClass", ms["foo"][:member]) assert_equal("MyClass", ms["bar"][:member]) end def test_parent_members classes = {} parent = JsDuck::Class.new({ :name => "ParentClass", :method => [ {:name => "baz"}, {:name => "foo"}, ] }, classes); classes["ParentClass"] = parent child = JsDuck::Class.new({ :name => "MyClass", :extends => "ParentClass", :method => [ {:name => "foo"}, {:name => "bar"}, ] }, classes); classes["MyClass"] = child ms = child.members_hash(:method) assert_equal(3, ms.values.length) assert_equal("MyClass", ms["foo"][:member], "foo should be overridden in child class") assert_equal("MyClass", ms["bar"][:member], "bar is only in child class") assert_equal("ParentClass", ms["baz"][:member], "baz is only in parent class") end def test_private_members_are_excluded cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar", :private => true}, {:name => "baz"}, {:name => "zed", :private => true}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert(ms["foo"]) assert(ms["baz"]) end def test_inherits_from classes = {} parent = JsDuck::Class.new({ :name => "Parent", }, classes); classes["Parent"] = parent child = JsDuck::Class.new({ :name => "Child", :extends => "Parent", }, classes); classes["Child"] = child grandchild = JsDuck::Class.new({ :name => "GrandChild", :extends => "Child", }, classes); classes["GrandChild"] = grandchild assert_equal(true, parent.inherits_from?("Parent"), "Parent inherits from Parent") assert_equal(false, parent.inherits_from?("Child"), "Parent does not inherit from Child") assert_equal(true, child.inherits_from?("Parent"), "Child inherits from Parent") assert_equal(true, grandchild.inherits_from?("Parent"), "GrandChild inherits from Parent") assert_equal(true, grandchild.inherits_from?("Child"), "GrandChild inherits from Child") end end Loading
Rakefile +9 −1 Original line number Diff line number Diff line require 'rubygems' require 'rake' $LOAD_PATH.unshift File.expand_path("../lib", __FILE__) require 'rake/testtask' Rake::TestTask.new(:test) do |test| test.libs << 'lib' << 'test' test.pattern = 'test/**/tc_*.rb' test.verbose = true end require 'spec' require 'spec/rake/spectask' Spec::Rake::SpecTask.new(:spec) do |spec| spec.spec_opts = ["--color"] spec.spec_files = FileList["spec/**/*_spec.rb"] end task :default => :test
spec/class_spec.rb 0 → 100644 +85 −0 Original line number Diff line number Diff line require "jsduck/class" describe Class do describe "#members_hash" do before do @classes = {} @parent = JsDuck::Class.new({ :name => "ParentClass", :method => [ {:name => "baz"}, {:name => "foo"}, {:name => "frank", :private => true}, ] }, @classes); @classes["ParentClass"] = @parent @child = JsDuck::Class.new({ :name => "ChildClass", :extends => "ParentClass", :method => [ {:name => "foo"}, {:name => "bar"}, {:name => "zappa", :private => true}, ] }, @classes); @classes["ChildClass"] = @child end it "returns all public members in current class" do ms = @parent.members_hash(:method) ms.values.length.should == 2 ms["foo"][:member].should == "ParentClass" ms["baz"][:member].should == "ParentClass" end it "also returns all public members in parent class" do ms = @child.members_hash(:method) ms.values.length.should == 3 ms["foo"][:member].should == "ChildClass" ms["bar"][:member].should == "ChildClass" ms["baz"][:member].should == "ParentClass" end end describe "#inherits_from" do before do @classes = {} @parent = JsDuck::Class.new({ :name => "Parent", }, @classes); @classes["Parent"] = @parent @child = JsDuck::Class.new({ :name => "Child", :extends => "Parent", }, @classes); @classes["Child"] = @child @grandchild = JsDuck::Class.new({ :name => "GrandChild", :extends => "Child", }, @classes); @classes["GrandChild"] = @grandchild end it "true when asked about itself" do @parent.inherits_from?("Parent").should == true end it "false when asked about class it's not inheriting from" do @parent.inherits_from?("Child").should == false end it "true when asked about direct parent" do @child.inherits_from?("Parent").should == true end it "true when asked about grandparent" do @grandchild.inherits_from?("Parent").should == true end end end
test/tc_class.rbdeleted 100644 → 0 +0 −94 Original line number Diff line number Diff line require "jsduck/class" require "test/unit" class TestClass < Test::Unit::TestCase def test_local_members cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar"}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert_equal("MyClass", ms["foo"][:member]) assert_equal("MyClass", ms["bar"][:member]) end def test_parent_members classes = {} parent = JsDuck::Class.new({ :name => "ParentClass", :method => [ {:name => "baz"}, {:name => "foo"}, ] }, classes); classes["ParentClass"] = parent child = JsDuck::Class.new({ :name => "MyClass", :extends => "ParentClass", :method => [ {:name => "foo"}, {:name => "bar"}, ] }, classes); classes["MyClass"] = child ms = child.members_hash(:method) assert_equal(3, ms.values.length) assert_equal("MyClass", ms["foo"][:member], "foo should be overridden in child class") assert_equal("MyClass", ms["bar"][:member], "bar is only in child class") assert_equal("ParentClass", ms["baz"][:member], "baz is only in parent class") end def test_private_members_are_excluded cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar", :private => true}, {:name => "baz"}, {:name => "zed", :private => true}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert(ms["foo"]) assert(ms["baz"]) end def test_inherits_from classes = {} parent = JsDuck::Class.new({ :name => "Parent", }, classes); classes["Parent"] = parent child = JsDuck::Class.new({ :name => "Child", :extends => "Parent", }, classes); classes["Child"] = child grandchild = JsDuck::Class.new({ :name => "GrandChild", :extends => "Child", }, classes); classes["GrandChild"] = grandchild assert_equal(true, parent.inherits_from?("Parent"), "Parent inherits from Parent") assert_equal(false, parent.inherits_from?("Child"), "Parent does not inherit from Child") assert_equal(true, child.inherits_from?("Parent"), "Child inherits from Parent") assert_equal(true, grandchild.inherits_from?("Parent"), "GrandChild inherits from Parent") assert_equal(true, grandchild.inherits_from?("Child"), "GrandChild inherits from Child") end end