You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context "Testing database collation on <_.Name>" {
77
-
It "Database <_.Database> collation <_.DatabaseCollation> should match server collation <_.ServerCollation> on <_.SqlInstance>" -ForEach @(Test-DbaDbCollation -SqlInstance $psitem -Database $Database -ExcludeDatabase $exclude) {
78
-
$psitem.ServerCollation | Should -Be $psitem.DatabaseCollation -Because "You will get collation conflict errors in tempdb"
It "Database <_.Name> collation <_.Collation> should match server collation <_.ServerCollation> on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database } else { $psitem.ConfigValues.wrongcollation-notcontains$PsItem.Name } } {
63
+
$psitem.ServerCollation| Should -Be $psitem.Collation-Because "You will get collation conflict errors in tempdb"
It "Database $($psitem.Database) collation ($($psitem.DatabaseCollation)) should not match server collation ($($psitem.ServerCollation)) on $($psitem.SqlInstance)" {
83
-
$psitem.ServerCollation | Should -Not -Be $psitem.DatabaseCollation -Because "You have defined the database to have another collation then the server. You will get collation conflict errors in tempdb"
84
-
}
85
-
}
65
+
66
+
# wrong collation set
67
+
It "Database <_.Name> collation <_.Collation> should not match server collation <_.ServerCollation> on <_.SqlInstance>"-ForEach $psitem.Databases.Where{ $_.Name-in$psitem.ConfigValues.wrongcollation } {
68
+
$psitem.ServerCollation| Should -Not-Be $psitem.Collation-Because "You have defined the database to have another collation then the server. You will get collation conflict errors in tempdb"
#TODO fix the it text - needs commas --> should be in this list ( sqladmin sa ) )
79
+
It "Database <_.Name> - owner '<_.Owner>' should be in this list ( <_.ConfigValues.validdbownername> ) ) on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database } else { $psitem.ConfigValues.validdbownerexclude-notcontains$PsItem.Name } } {
80
+
$psitem.Owner| Should -BeIn $psitem.ConfigValues.validdbownername-Because "The account that is the database owner is not what was expected"
#TODO fix the it text - needs commas --> should be in this list ( sqladmin sa ) )
109
-
It "Database <_.Name> - owner '<_.Owner>' should be in this list ( <_.ConfigValues.validdbownername> ) ) on <_.Parent.Name>"-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database }else { $ExcludedDatabases-notcontains$PsItem.Name } } {
110
-
$psitem.Owner| Should -BeIn $psitem.ConfigValues.validdbownername-Because "The account that is the database owner is not what was expected"
89
+
90
+
It "Database <_.Name> - owner '<_.Owner>' should not be in this list ( <_.ConfigValues.invaliddbownername> ) ) on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database }else { $psitem.ConfigValues.invaliddbownerexclude-notcontains$PsItem.Name } } {
91
+
$psitem.Owner| Should -Not-BeIn $psitem.ConfigValues.invaliddbownername-Because "The database owner was one specified as incorrect"
Context "Testing Asymmetric Key Size is 2048 or higher on <_.Name>" {
99
+
It "Database <_.Name> asymmetric key size should be at least 2048 on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database } else { $psitem.ConfigValues.asymmetrickeysizeexclude-notcontains$PsItem.Name } } {
100
+
$psitem.AsymmetricKeySize| Should -Be 0-Because "Asymmetric keys should have a key length greater than or equal to 2048"
101
+
#$psitem.AsymmetricKeySize | Should -BeGreaterOrEqual 2048 -Because "Asymmetric keys should have a key length greater than or equal to 2048"
It "Database <_.Name> should have Auto Close set to <_.ConfigValues.autoclose> on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database } else { $psitem.ConfigValues.autocloseexclude-notcontains$PsItem.Name } } {
110
+
$psitem.AutoClose| Should -Be $psitem.ConfigValues.autoclose-Because "Because!"
It "Database <_.Name> should have Auto Shrink set to <_.ConfigValues.autoshrink> on <_.SqlInstance>"-Skip:$skip-ForEach $psitem.Databases.Where{ if ($Database) { $_.Name-in$Database } else { $psitem.ConfigValues.autoshrinkexclude-notcontains$PsItem.Name } } {
119
+
$psitem.AutoShrink| Should -Be $psitem.ConfigValues.autoshrink-Because "Shrinking databases causes fragmentation and performance issues"
$PsItem.ExpectedTraceFlags.ActualTraceFlags.TraceFlag| Should -BeNullOrEmpty -Because "We expect that there will be no Trace Flags set on $($Psitem.Name)"
226
226
}
227
227
It "Expected Trace Flags <_.ExpectedTraceFlag> to exist on <_.InstanceName>"-Skip:$skip-ForEach ($PsItem.ExpectedTraceFlags|Where-Object { $psitem.ExpectedTraceFlag-ne'null' }) {
228
-
$PsItem.ActualTraceFlags.TraceFlag| Should -Contain $PsItem.ExpectedTraceFlag-Because "We expect that Trace Flag $($PsItem.ExpectedTraceFlag)will be set on $($Psitem.InstanceName)"
228
+
$PsItem.ActualTraceFlags.TraceFlag| Should -Contain $PsItem.ExpectedTraceFlag-Because "We expect that Trace Flag $($PsItem.ExpectedTraceFlag) will be set on $($Psitem.InstanceName)"
Context "Testing Not Expected Trace Flags on <_.Name>" {
236
+
It "Expected No Trace Flags except for <_.ConfigValues.TraceFlagsExpected> to exist on <_.Name>"-Skip:$skip-ForEach ($Psitem|Where-Object { $null-eq$psitem.ConfigValues.TraceFlagsNotExpected }) {
237
+
$PsItem.NotExpectedTraceFlags.ActualTraceFlags.TraceFlag| Should -BeNullOrEmpty -Because "We expect that there will be no Trace Flags set on $($Psitem.Name) except for $($psitem.ConfigValues.ExpectedTraceFlag)"
238
+
}
239
+
It "Expected <_.NotExpectedTraceFlag> Trace Flag to not exist on <_.InstanceName>"-Skip:$skip-ForEach ($PsItem.NotExpectedTraceFlags|Where-Object { $psitem.NotExpectedTraceFlag-ne'null' }) {
240
+
$PsItem.ActualTraceFlags.TraceFlag| Should -Not-Contain $PsItem.NotExpectedTraceFlag-Because "We expect that Trace Flag $($PsItem.NotExpectedTraceFlag) will not be set on $($Psitem.InstanceName) except for $($psitem.ConfigValues.ExpectedTraceFlag)"
It "CLR Enabled is set to <_.ConfigValues.CLREnabled> on <_.Name>"-Skip:$skip {
249
+
$PSItem.Configuration.IsSqlClrEnabled.ConfigValue-eq1| Should -Be $psitem.ConfigValues.CLREnabled-Because 'This is the setting you have chosen for CLR Enabled'
250
+
}
251
+
}
252
+
}
253
+
254
+
Describe "sp_whoisactive is Installed"-Tag WhoIsActiveInstalled, Low, Instance -ForEach $InstancesToTest {
Context "Testing WhoIsActive exists on <_.Name>" {
257
+
It "WhoIsActive should exist on <_.ConfigValues.whoisactivedatabase> on <_.Name>"-Skip:$skip {
258
+
$Psitem.ConfigValues.WhoIsActiveInstalled| Should -Be 1-Because "The sp_WhoIsActive stored procedure should be installed in $($psitem.ConfigValues.whoisactivedatabase)"
0 commit comments