summaryrefslogtreecommitdiffstats
path: root/tests/units/test_init.rb
blob: c192dc07e8c604ea8a55354ddde4c276d8f6cc08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../test_helper'

class TestInit < Test::Unit::TestCase
  def setup
    set_file_paths
  end

  def test_open_simple
    g = Git.open(@wdir)
    assert_equal(g.dir.path, @wdir)
    assert_equal(g.repo.path, File.join(@wdir, '.git'))
    assert_equal(g.index.path, File.join(@wdir, '.git', 'index'))
  end
    
  def test_open_opts 
    g = Git.open @wdir, :repository => @wbare, :index => @index
    assert_equal(g.repo.path, @wbare)
    assert_equal(g.index.path, @index)
  end
  
  def test_git_bare
    g = Git.bare @wbare
    assert_equal(g.repo.path, @wbare)
  end
  
  #g = Git.init
  #  Git.init('project')
  #  Git.init('/home/schacon/proj', 
  #		{ :git_dir => '/opt/git/proj.git', 
  #		  :index_file => '/tmp/index'} )
  def test_git_init
    in_temp_dir do |path|
      Git.init
      assert(File.directory?(File.join(path, '.git')))
      assert(File.exists?(File.join(path, '.git', 'config')))
    end
  end
  
  def test_git_init_remote_git
    in_temp_dir do |dir|
      assert(!File.exists?(File.join(dir, 'config')))
      
      in_temp_dir do |path|        
        Git.init(path, :repository => dir)
        assert(File.exists?(File.join(dir, 'config')))
      end
    end
  end
  
  def test_git_clone
    in_temp_dir do |path|      
      g = Git.clone(@wbare, 'bare-co')
      assert(File.exists?(File.join(g.repo.path, 'config')))
      assert(g.dir)
    end
  end
  
  def test_git_clone_bare
    in_temp_dir do |path|      
      g = Git.clone(@wbare, 'bare.git', :bare => true)
      assert(File.exists?(File.join(g.repo.path, 'config')))
      assert_nil(g.dir)
    end
  end
  
  # trying to open a git project using a bare repo - rather than using Git.repo
  def test_git_open_error
    assert_raise ArgumentError do
      g = Git.open @wbare
    end
  end
  
end