Skip to content

Commit dd15563

Browse files
committed
Merge pull request #807 from yoavrubin/dev
Bug fix in SQL data masking when updating rule
2 parents 31c94c1 + 19f772c commit dd15563

File tree

7 files changed

+5233
-2898
lines changed

7 files changed

+5233
-2898
lines changed

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/DataMaskingTests.ps1

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,19 @@ function Test-DatabaseDataMaskingBasicRuleLifecycle
140140
Assert-AreEqual $rule.TableName $params.table2
141141
Assert-AreEqual $rule.ColumnName $params.column2
142142

143+
Set-AzureSqlDatabaseDataMaskingRule -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName -RuleId $ruleId -MaskingFunction "Default"
144+
$rule = Get-AzureSqlDatabaseDataMaskingRule -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName -RuleId $ruleId
145+
146+
# Assert
147+
Assert-AreEqual $rule.ResourceGroupName $params.rgname
148+
Assert-AreEqual $rule.ServerName $params.serverName
149+
Assert-AreEqual $rule.DatabaseName $params.databaseName
150+
Assert-AreEqual $rule.RuleId $ruleId
151+
Assert-AreEqual $rule.MaskingFunction "Default"
152+
Assert-AreEqual $rule.SchemaName "dbo"
153+
Assert-AreEqual $rule.TableName $params.table2
154+
Assert-AreEqual $rule.ColumnName $params.column2
155+
143156
$ruleCountBefore = (Get-AzureSqlDatabaseDataMaskingRule -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName).Count
144157
$ruleCountBefore = if ( !$ruleCountBefore ) {0} else {$ruleCountBefore}
145158
Remove-AzureSqlDatabaseDataMaskingRule -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName -RuleId $ruleId -Force
@@ -353,7 +366,7 @@ function Test-DatabaseDataMaskingRuleCreationWithoutPolicy
353366
{
354367

355368
# Setup
356-
$testSuffix = 45262
369+
$testSuffix = 457822
357370
$params = Create-DataMaskingTestEnvironment $testSuffix
358371
$ruleId = "rule1"
359372
try

src/ResourceManager/Sql/Commands.Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DataMaskingTests/TestDatabaseDataMaskingBasicRuleLifecycle.json

Lines changed: 996 additions & 576 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DataMaskingTests/TestDatabaseDataMaskingNumberRuleLifecycle.json

Lines changed: 1790 additions & 542 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DataMaskingTests/TestDatabaseDataMaskingRuleCreationFailures.json

Lines changed: 599 additions & 503 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DataMaskingTests/TestDatabaseDataMaskingRuleCreationWithoutPolicy.json

Lines changed: 1241 additions & 695 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DataMaskingTests/TestDatabaseDataMaskingTextRuleLifecycle.json

Lines changed: 578 additions & 578 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/BuildAzureSqlDatabaseDataMaskingRule.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,21 @@ protected string ValidateRuleTarget(IEnumerable<DatabaseDataMaskingRuleModel> ru
127127
/// <returns>An updated rule model</returns>
128128
protected DatabaseDataMaskingRuleModel UpdateRule(DatabaseDataMaskingRuleModel rule)
129129
{
130-
rule.SchemaName = SchemaName;
131-
rule.TableName = TableName;
132-
rule.ColumnName = ColumnName;
130+
if (!string.IsNullOrEmpty(SchemaName)) // only update if the user provided this value
131+
{
132+
rule.SchemaName = SchemaName;
133+
}
134+
135+
if (!string.IsNullOrEmpty(TableName)) // only update if the user provided this value
136+
{
137+
rule.TableName = TableName;
138+
}
139+
140+
if (!string.IsNullOrEmpty(ColumnName)) // only update if the user provided this value
141+
{
142+
rule.ColumnName = ColumnName;
143+
}
144+
133145
if(!string.IsNullOrEmpty(MaskingFunction)) // only update if the user provided this value
134146
{
135147
rule.MaskingFunction = ModelizeMaskingFunction();

0 commit comments

Comments
 (0)