General validation middleware

This commit is contained in:
Mitchell Hashimoto 2010-10-13 18:40:12 -07:00
parent dcb06a0e43
commit 82d73ebe3c
2 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,19 @@
module Vagrant
class Action
module General
# Simply validates the configuration of the current Vagrant
# environment.
class Validate
def initialize(app, env)
@app = app
@env = env
end
def call(env)
@env["config"].validate! if !@env.has_key?("validate") || @env["validate"]
@app.call(@env)
end
end
end
end
end

View File

@ -0,0 +1,31 @@
require "test_helper"
class ValidateGeneralActionTest < Test::Unit::TestCase
setup do
@klass = Vagrant::Action::General::Validate
@app, @env = action_env
end
should "initialize fine" do
@klass.new(@app, @env)
end
should "validate and call up" do
@instance = @klass.new(@app, @env)
seq = sequence("seq")
@env["config"].expects(:validate!).once.in_sequence(seq)
@app.expects(:call).with(@env).once.in_sequence(seq)
@instance.call(@env)
end
should "not validate if env says not to" do
@env["validate"] = false
@instance = @klass.new(@app, @env)
seq = sequence("seq")
@env["config"].expects(:validate!).never
@app.expects(:call).with(@env).once.in_sequence(seq)
@instance.call(@env)
end
end