got clone and init to work - my first writing functions
[rubygit.git] / tests / units / test_object.rb
blobc115b75505b88ed783adf43bbd0334f8395c10e9
1 #!/usr/bin/env ruby
3 require File.dirname(__FILE__) + '/../test_helper'
5 class TestObject < Test::Unit::TestCase
6   def setup
7     set_file_paths
8     @git = Git.open(@wdir)
9     
10     @commit = @git.object('1cc8667014381')
11     @tree = @git.object('1cc8667014381^{tree}')
12     @blob = @git.object('v2.5:example.txt')
13   end
14   
15   def test_commit
16     o = @git.object('1cc8667014381')
17     assert(o.is_a?(Git::Object::Commit))
18     
19     o = @git.object('HEAD')
20     assert(o.is_a?(Git::Object::Commit))
21     assert_equal('commit', o.type)
22     
23     o = @git.object('test_object')
24     assert(o.is_a?(Git::Object::Commit))
25     assert_equal('commit', o.type)
26   end
27   
28   def test_commit_contents
29     o = @git.object('1cc8667014381')
30     assert_equal('tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', o.contents_array[0])
31     assert_equal('parent 546bec6f8872efa41d5d97a369f669165ecda0de', o.contents_array[1])
32   end
33   
34   def test_object_to_s
35     assert_equal('1cc8667014381e2788a94777532a788307f38d26', @commit.to_s)
36     assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', @tree.to_s)
37     assert_equal('ba492c62b6227d7f3507b4dcc6e6d5f13790eabf', @blob.to_s)
38   end
39   
40   def test_object_size
41     assert_equal(265, @commit.size)
42     assert_equal(72, @tree.size)
43     assert_equal(128, @blob.size)
44   end
45   
46   def test_tree
47     o = @git.object('1cc8667014381^{tree}')
48     assert(o.is_a?(Git::Object::Tree))
49     
50     o = @git.object('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7')
51     assert(o.is_a?(Git::Object::Tree))
52     assert_equal('tree', o.type)
53   end
54   
55   def test_tree_contents
56     o = @git.object('1cc8667014381^{tree}')
57     assert_equal('040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed  ex_dir', o.contents_array.first)
58   end
59   
60   def test_blob
61     o = @git.object('ba492c62b6')
62     assert(o.is_a?(Git::Object::Blob))
63     
64     o = @git.object('v2.5:example.txt')
65     assert(o.is_a?(Git::Object::Blob))
66     assert_equal('blob', o.type)
67   end
68   
69   def test_blob_contents
70     o = @git.object('v2.6:example.txt')
71     assert_equal('replace with new text', o.contents)
72   end
73   
74   def test_revparse
75     sha = @git.revparse('v2.6:example.txt')
76     assert_equal('1f09f2edb9c0d9275d15960771b363ca6940fbe3', sha)
77   end
78   
79   def test_grep
80     g = @git.tree('a3db7143944dcfa0').grep('search') # there
81     assert_equal(3, g.to_a.flatten.size)
82     assert_equal(1, g.size)
84     assert_equal({}, @git.tree('a3db7143944dcfa0').grep('34a566d193'))  # not there
86     g = @git.commit('gitsearch1').grep('search') # there
87     assert_equal(8, g.to_a.flatten.size)
88     assert_equal(2, g.size)
89     
90     g = @git.commit('gitsearch1').grep('search', 'scott/new*') # there
91     assert_equal(3, g.to_a.flatten.size)
92     assert_equal(1, g.size)
93   end
94   
95   
96 end