require 'spec_helper' describe 'postgresql_acls_to_resources_hash', :type => :puppet_function do context 'individual transform tests' do it do input = 'local all postgres ident' result = { "postgresql class generated rule test 0"=>{ "type"=>"local", "database"=>"all", "user"=>"postgres", "auth_method"=>"ident", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input = 'local all root ident' result = { "postgresql class generated rule test 0"=>{ "type"=>"local", "database"=>"all", "user"=>"root", "auth_method"=>"ident", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input_array = [ 'local all all ident', ] result = { "postgresql class generated rule test 0"=>{ "type"=>"local", "database"=>"all", "user"=>"all", "auth_method"=>"ident", "order"=>"100", }, } is_expected.to run.with_params(input_array, 'test', 100).and_return(result) end it do input = 'host all all 127.0.0.1/32 md5' result = { "postgresql class generated rule test 0"=>{ "type"=>"host", "database"=>"all", "user"=>"all", "address"=>"127.0.0.1/32", "auth_method"=>"md5", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input = 'host all all 0.0.0.0/0 md5' result = { "postgresql class generated rule test 0"=>{ "type"=>"host", "database"=>"all", "user"=>"all", "address"=>"0.0.0.0/0", "auth_method"=>"md5", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input = 'host all all ::1/128 md5' result = { "postgresql class generated rule test 0"=>{ "type"=>"host", "database"=>"all", "user"=>"all", "address"=>"::1/128", "auth_method"=>"md5", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input = 'host all all 1.1.1.1 255.255.255.0 md5' result = { "postgresql class generated rule test 0"=>{ "type"=>"host", "database"=>"all", "user"=>"all", "address"=>"1.1.1.1 255.255.255.0", "auth_method"=>"md5", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end it do input = 'host all all 1.1.1.1 255.255.255.0 ldap ldapserver=ldap.example.net ldapprefix="cn=" ldapsuffix=", dc=example, dc=net"' result = { "postgresql class generated rule test 0"=>{ "type"=>"host", "database"=>"all", "user"=>"all", "address"=>"1.1.1.1 255.255.255.0", "auth_method"=>"ldap", "auth_option"=>"ldapserver=ldap.example.net ldapprefix=\"cn=\" ldapsuffix=\", dc=example, dc=net\"", "order"=>"100", }, } is_expected.to run.with_params([input], 'test', 100).and_return(result) end end it 'should return an empty hash when input is empty array' do is_expected.to run.with_params([], 'test', 100).and_return({}) end end