|
1 | 1 | require 'spec_helper'
|
2 | 2 | require File.expand_path(File.join(File.dirname(__FILE__), '..', 'manifest_shared_examples.rb'))
|
3 | 3 |
|
4 |
| -describe 'sqlserver::login::permission' do |
| 4 | +describe 'sqlserver::login::permissions' do |
5 | 5 | let(:facts) { {:osfamily => 'windows'} }
|
6 | 6 | context 'validation errors' do
|
7 | 7 | include_context 'manifests' do
|
|
10 | 10 | end
|
11 | 11 | context 'login =>' do
|
12 | 12 | let(:params) { {
|
13 |
| - :permissions=> ['SELECT'], |
| 13 | + :permissions => ['SELECT'], |
14 | 14 | } }
|
15 | 15 | let(:raise_error_check) { 'Login must be between 1 and 128 characters' }
|
16 | 16 | describe 'missing' do
|
17 |
| - let(:raise_error_check) { 'Must pass login to Sqlserver::Login::Permission[myTitle]' } |
| 17 | + let(:raise_error_check) { 'Must pass login to Sqlserver::Login::Permissions[myTitle]' } |
18 | 18 | it_behaves_like 'validation error'
|
19 | 19 | end
|
20 | 20 | describe 'empty' do
|
|
28 | 28 | end
|
29 | 29 | context 'permission' do
|
30 | 30 | let(:params) { {
|
31 |
| - :login => 'loggingUser', |
| 31 | + :login => 'loggingUser', |
32 | 32 | } }
|
33 | 33 | let(:raise_error_check) { 'Permission must be between 4 and 128 characters' }
|
34 | 34 | describe 'empty' do
|
35 |
| - let(:additional_params) { {:permissions=> ['']} } |
| 35 | + let(:additional_params) { {:permissions => ['']} } |
36 | 36 | it_behaves_like 'validation error'
|
37 | 37 | end
|
38 | 38 | describe 'under limit' do
|
39 |
| - let(:additional_params) { {:permissions=> [random_string_of_size(3, false)]} } |
| 39 | + let(:additional_params) { {:permissions => [random_string_of_size(3, false)]} } |
40 | 40 | it_behaves_like 'validation error'
|
41 | 41 | end
|
42 | 42 | describe 'over limit' do
|
43 |
| - let(:additional_params) { {:permissions=> [random_string_of_size(129, false)]} } |
| 43 | + let(:additional_params) { {:permissions => [random_string_of_size(129, false)]} } |
44 | 44 | it_behaves_like 'validation error'
|
45 | 45 | end
|
46 | 46 | end
|
47 | 47 | context 'state =>' do
|
48 | 48 | let(:params) { {
|
49 |
| - :permissions=> ['SELECT'], |
50 |
| - :login => 'loggingUser' |
| 49 | + :permissions => ['SELECT'], |
| 50 | + :login => 'loggingUser' |
51 | 51 | } }
|
52 | 52 | describe 'invalid' do
|
53 | 53 | let(:additional_params) { {:state => 'invalid'} }
|
|
61 | 61 | let(:title) { 'myTitle' }
|
62 | 62 | let(:sqlserver_tsql_title) { 'login-permission-MSSQLSERVER-loggingUser-GRANT' }
|
63 | 63 | let(:params) { {
|
64 |
| - :login => 'loggingUser', |
65 |
| - :permissions=> ['SELECT'], |
| 64 | + :login => 'loggingUser', |
| 65 | + :permissions => ['SELECT'], |
66 | 66 | } }
|
67 | 67 | end
|
68 | 68 | %w(revoke grant deny).each do |state|
|
|
90 | 90 | it_behaves_like 'sqlserver_tsql command'
|
91 | 91 | end
|
92 | 92 | describe 'alter' do
|
93 |
| - let(:additional_params) { {:permissions=> ['ALTER']} } |
| 93 | + let(:additional_params) { {:permissions => ['ALTER']} } |
94 | 94 | let(:should_contain_command) { ['USE [master];', 'GRANT ALTER TO [loggingUser];'] }
|
95 | 95 | let(:sqlserver_tsql_title) { "login-permission-MSSQLSERVER-loggingUser-GRANT" }
|
96 | 96 | it_behaves_like 'sqlserver_tsql command'
|
|
113 | 113 | let(:title) { 'myTitle' }
|
114 | 114 | let(:sqlserver_tsql_title) { 'login-permission-MSSQLSERVER-loggingUser-GRANT' }
|
115 | 115 | let(:params) { {
|
116 |
| - :login => 'loggingUser', |
117 |
| - :permissions => ['SELECT'], |
| 116 | + :login => 'loggingUser', |
| 117 | + :permissions => ['SELECT'], |
118 | 118 | } }
|
119 | 119 | describe '' do
|
120 | 120 | let(:should_contain_command) { [
|
121 |
| - 'USE [master];', |
122 |
| - 'GRANT SELECT TO [loggingUser];', |
123 |
| - /DECLARE @perm_state varchar\(250\)/, |
124 |
| - /SET @perm_state = ISNULL\(\n\s+\(SELECT perm.state_desc FROM sys\.server_permissions perm\n\s+JOIN sys\./, |
125 |
| - /JOIN sys\.server_principals princ ON princ.principal_id = perm\.grantee_principal_id\n\s+WHERE/, |
126 |
| - /WHERE princ\.type IN \('U','S','G'\)\n\s+ AND princ\.name = 'loggingUser'\n\s+AND perm\.permission_name = @permission\),\n\s+'REVOKE'\)/, |
127 |
| - /SET @error_msg = 'EXPECTED login \[loggingUser\] to have permission \[' \+ @permission \+ '\] with GRANT but got ' \+ @perm_state;/, |
128 |
| - /IF @perm_state != 'GRANT'\n\s+THROW 51000, @error_msg, 10/ |
| 121 | + 'USE [master];', |
| 122 | + 'GRANT SELECT TO [loggingUser];', |
| 123 | + /DECLARE @perm_state varchar\(250\)/, |
| 124 | + /SET @perm_state = ISNULL\(\n\s+\(SELECT perm.state_desc FROM sys\.server_permissions perm\n\s+JOIN sys\./, |
| 125 | + /JOIN sys\.server_principals princ ON princ.principal_id = perm\.grantee_principal_id\n\s+WHERE/, |
| 126 | + /WHERE princ\.type IN \('U','S','G'\)\n\s+ AND princ\.name = 'loggingUser'\n\s+AND perm\.permission_name = @permission\),\n\s+'REVOKE'\)/, |
| 127 | + /SET @error_msg = 'EXPECTED login \[loggingUser\] to have permission \[' \+ @permission \+ '\] with GRANT but got ' \+ @perm_state;/, |
| 128 | + /IF @perm_state != 'GRANT'\n\s+THROW 51000, @error_msg, 10/ |
129 | 129 | ] }
|
130 | 130 | it_behaves_like 'sqlserver_tsql command'
|
131 | 131 | end
|
|
0 commit comments