Add basic repository tests

This commit is contained in:
Joshua Peek
2011-05-21 20:51:51 -05:00
parent f8cea0ee7a
commit c9a20c03b4
2 changed files with 72 additions and 6 deletions

59
test/test_repository.rb Normal file
View File

@@ -0,0 +1,59 @@
require 'linguist/repository'
require 'test/unit'
class TestRepository < Test::Unit::TestCase
include Linguist
class FixtureBlob
def initialize(name, path)
@name = name
@path = path
end
def name
@name
end
def data
File.read(@path)
end
def size
File.size(@path)
end
end
def repo(base_path)
paths = Dir["#{base_path}/**/*"].inject({}) do |h, path|
if File.file?(path)
name = path.sub("#{base_path}/", '')
h[name] = Blob.new(FixtureBlob.new(name, path))
end
h
end
Repository.new(paths)
end
def linguist_repo
repo(File.expand_path("../..", __FILE__))
end
def test_lookup_path
assert linguist_repo['lib/linguist.rb']
assert_equal Language['Ruby'], linguist_repo['lib/linguist.rb'].language
end
def test_linguist_language
assert_equal Language['Ruby'], linguist_repo.language
end
def test_linguist_languages
assert linguist_repo.languages['Ruby'] > 30_000
assert linguist_repo.languages['Python'] < 1000
end
def test_linguist_size
assert linguist_repo.size > 30_000
end
end