Use symbols consistently with provider.expects()
[puppet_vcsrepo.git] / spec / unit / puppet / provider / vcsrepo / bzr_spec.rb
1 require 'spec_helper'
2
3 describe_provider :vcsrepo, :bzr, :resource => {:path => '/tmp/vcsrepo'} do
4
5   describe 'creating' do
6     resource_with :source do
7       resource_with :revision do
8         it "should execute 'bzr clone -r' with the revision" do
9           provider.expects(:bzr).with('branch', '-r', resource.value(:revision), resource.value(:source), resource.value(:path))
10           provider.create
11         end
12       end
13       resource_without :revision do
14         it "should just execute 'bzr clone' without a revision" do
15           provider.expects(:bzr).with('branch', resource.value(:source), resource.value(:path))
16           provider.create
17         end
18       end
19     end
20     resource_without :source do
21       it "should execute 'bzr init'" do
22         provider.expects(:bzr).with('init', resource.value(:path))
23         provider.create
24       end
25     end
26   end
27
28   describe 'destroying' do
29     it "it should remove the directory" do
30       expects_rm_rf
31       provider.destroy
32     end
33   end
34
35   describe "checking existence" do
36     it "should check for the directory" do
37       expects_directory?(true, File.join(resource.value(:path), '.bzr'))
38       provider.exists?
39     end
40   end
41
42   describe "checking the revision property" do
43     before do
44       expects_chdir
45       provider.expects(:bzr).with('version-info').returns(fixture(:bzr_version_info))
46       @current_revid = 'menesis@pov.lt-20100309191856-4wmfqzc803fj300x'
47     end
48     context "when given a non-revid as the resource revision", :resource => {:revision => '2634'} do
49       context "when its revid is not different than the current revid" do
50         before do
51           provider.expects(:bzr).with('revision-info', resource.value(:revision)).returns("#{resource.value(:revision)} menesis@pov.lt-20100309191856-4wmfqzc803fj300x\n")
52         end
53         it "should return the ref" do
54           provider.revision.should == resource.value(:revision)
55         end
56       end
57       context "when its revid is different than the current revid", :resource => {:revision => '2636'} do
58         it "should return the current revid" do
59           provider.expects(:bzr).with('revision-info', resource.value(:revision)).returns("2635 foo\n")
60           provider.revision.should == @current_revid
61         end
62       end
63     end
64     context "when given a revid as the resource revision" do
65       context "when it is the same as the current revid", :resource => {:revision => 'menesis@pov.lt-20100309191856-4wmfqzc803fj300x'} do
66         before do
67           provider.expects(:bzr).with('revision-info', resource.value(:revision)).returns("1234 #{resource.value(:revision)}\n")
68         end
69         it "should return it" do
70           provider.revision.should == resource.value(:revision)
71         end
72       end
73       context "when it is not the same as the current revid", :resource => {:revision => 'menesis@pov.lt-20100309191856-4wmfqzc803fj300y'} do
74         it "should return the current revid" do
75           provider.expects(:bzr).with('revision-info', resource.value(:revision)).returns("2636 foo\n")
76           provider.revision.should == @current_revid
77         end
78       end
79     end
80   end
81
82   describe "setting the revision property" do
83     it "should use 'bzr update -r' with the revision" do
84       revision = 'somerev'
85       provider.expects(:bzr).with('update', '-r', revision, resource.value(:path))
86       provider.revision = revision
87     end
88   end
89
90 end