Project

General

Profile

Download (2.15 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'helpers'
require 'puppet_api'
require 'json'
require 'ostruct'

ENV['RACK_ENV'] = 'test'

class PuppetApiTest < Test::Unit::TestCase
include Rack::Test::Methods

def app
SmartProxy.new
end

def setup
apache = OpenStruct.new(:name => "apache::class", :module => "apache", :params => {:ensure => nil, :enable => true})
apache.stubs(:to_s).returns(apache.name)
@foo = OpenStruct.new(:name => "foo", :paths => ["/etc/puppet/modules/foo"], :classes => [apache])
@bar = OpenStruct.new(:name => "bar", :paths => ["/etc/puppet/modules/common", "/etc/puppet/modules/bar"], :classes => [])
@foo.stubs(:to_s).returns(@foo.name)
@bar.stubs(:to_s).returns(@bar.name)
end

def test_api_gets_puppet_environments
Proxy::Puppet::Environment.expects(:all).returns([@foo, @bar])
get "/puppet/environments"
assert last_response.ok?, "Last response was not ok: #{last_response.body}"
data = JSON.parse(last_response.body)
assert_equal ["foo", "bar"], data
end

def test_api_gets_single_puppet_environment
Proxy::Puppet::Environment.expects(:find).with("foo").returns(@foo)
get "/puppet/environments/foo"
assert last_response.ok?, "Last response was not ok: #{last_response.body}"
data = JSON.parse(last_response.body)
assert_equal "foo", data["name"]
assert_equal ["/etc/puppet/modules/foo"], data["paths"]
end

def test_api_missing_single_puppet_environment
Proxy::Puppet::Environment.expects(:find).with("unknown").returns(nil)
get "/puppet/environments/unknown"
assert_equal 404, last_response.status
end

def test_api_gets_puppet_environment_classes
Proxy::Puppet::Environment.expects(:find).with("foo").returns(@foo)
get "/puppet/environments/foo/classes"
assert last_response.ok?, "Last response was not ok: #{last_response.body}"
data = JSON.parse(last_response.body)
assert_equal Array, data.class
assert_equal "apache::class", data[0]["apache::class"]["name"]
assert_equal "apache", data[0]["apache::class"]["module"]
assert data[0]["apache::class"]["params"].include? "ensure"
assert data[0]["apache::class"]["params"]["enable"]
end
end
(12-12/31)