test/vagrant/box_test.rb in vagrantup-0.5.4 vs test/vagrant/box_test.rb in vagrantup-0.6.0
- old
+ new
@@ -1,136 +1,42 @@
require "test_helper"
class BoxTest < Test::Unit::TestCase
context "class methods" do
setup do
- @env = mock_environment
+ @env = vagrant_env
end
- context "listing all boxes" do
- setup do
- Dir.stubs(:open)
- File.stubs(:directory?).returns(true)
-
- @boxes_path = "foo"
- @env.stubs(:boxes_path).returns(@boxes_path)
- end
-
- should "open the boxes directory" do
- Dir.expects(:open).with(@env.boxes_path)
- Vagrant::Box.all(@env)
- end
-
- should "return an array" do
- result = Vagrant::Box.all(@env)
- assert result.is_a?(Array)
- end
-
- should "not return the '.' and '..' directories" do
- dir = [".", "..", "..", ".", ".."]
- Dir.expects(:open).yields(dir)
- result = Vagrant::Box.all(@env)
- assert result.empty?
- end
-
- should "return the other directories" do
- dir = [".", "foo", "bar", "baz"]
- Dir.expects(:open).yields(dir)
- result = Vagrant::Box.all(@env)
- assert_equal ["foo", "bar", "baz"], result
- end
-
- should "ignore the files" do
- dir = ["foo", "bar"]
- files = [true, false]
- Dir.expects(:open).yields(dir)
- dir_sequence = sequence("directory")
- dir.each_with_index do |dir, index|
- File.expects(:directory?).with(File.join(@boxes_path, dir)).returns(files[index]).in_sequence(dir_sequence)
- end
-
- result = Vagrant::Box.all(@env)
- assert_equal ["foo"], result
- end
- end
-
- context "finding" do
- setup do
- @dir = "foo"
- @name = "bar"
- Vagrant::Box.stubs(:directory).with(@env, @name).returns(@dir)
- end
-
- should "return nil if the box doesn't exist" do
- File.expects(:directory?).with(@dir).once.returns(false)
- assert_nil Vagrant::Box.find(@env, @name)
- end
-
- should "return a box object with the proper name set" do
- File.expects(:directory?).with(@dir).once.returns(true)
- result = Vagrant::Box.find(@env, @name)
- assert result
- assert_equal @name, result.name
- end
-
- should "return a box object with the proper env set" do
- File.expects(:directory?).with(@dir).once.returns(true)
- result = Vagrant::Box.find(@env, @name)
- assert result
- assert_equal @env, result.env
- end
- end
-
context "adding" do
setup do
@name = "foo"
@uri = "bar"
end
should "create a new instance, set the variables, and add it" do
box = mock("box")
- box.expects(:name=).with(@name)
box.expects(:uri=).with(@uri)
- box.expects(:env=).with(@env)
box.expects(:add).once
- Vagrant::Box.expects(:new).returns(box)
+ Vagrant::Box.expects(:new).with(@env, @name).returns(box)
Vagrant::Box.add(@env, @name, @uri)
end
end
-
- context "box directory" do
- setup do
- @name = "foo"
- @box_dir = File.join(@env.boxes_path, @name)
- end
-
- should "return the boxes_path joined with the name" do
- assert_equal @box_dir, Vagrant::Box.directory(@env, @name)
- end
- end
end
context "instance methods" do
setup do
- @box = Vagrant::Box.new
- @box.env = mock_environment
+ @box = Vagrant::Box.new(vagrant_env, "foo")
end
should "execute the Add action when add is called" do
@box.env.actions.expects(:run).with(:box_add, { "box" => @box })
@box.add
end
context "box directory" do
- setup do
- @box.name = "foo"
- end
-
should "return the boxes_path joined with the name" do
- result = mock("object")
- Vagrant::Box.expects(:directory).with(@box.env, @box.name).returns(result)
- assert result.equal?(@box.directory)
+ assert_equal @box.env.boxes_path.join(@box.name), @box.directory
end
end
context "destroying" do
should "execute the destroy action" do
@@ -150,17 +56,11 @@
@box.repackage("foo" => "bar")
end
end
context "ovf file" do
- setup do
- @box.stubs(:directory).returns("foo")
-
- @box.env.config.vm.box_ovf = "foo.ovf"
- end
-
should "be the directory joined with the config ovf file" do
- assert_equal File.join(@box.directory, @box.env.config.vm.box_ovf), @box.ovf_file
+ assert_equal @box.directory.join(@box.env.config.vm.box_ovf), @box.ovf_file
end
end
end
end