mirror of
https://github.com/bitwarden/server
synced 2026-02-10 21:50:21 +00:00
Implement model validation in PolicyDataValidator and enhance error handling
Added a ValidateModel method to enforce validation rules for policy data. Updated error messages to provide clearer feedback on validation failures. Enhanced unit tests to cover new validation scenarios for MinLength and MinComplexity properties.
This commit is contained in:
@@ -19,12 +19,17 @@ public class PolicyDataValidatorTests
|
||||
[Fact]
|
||||
public void ValidateAndSerialize_ValidData_ReturnsSerializedJson()
|
||||
{
|
||||
var data = new Dictionary<string, object> { { "minLength", 12 } };
|
||||
var data = new Dictionary<string, object>
|
||||
{
|
||||
{ "minLength", 12 },
|
||||
{ "minComplexity", 4 }
|
||||
};
|
||||
|
||||
var result = PolicyDataValidator.ValidateAndSerialize(data, PolicyType.MasterPassword);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Contains("\"minLength\":12", result);
|
||||
Assert.Contains("\"minComplexity\":4", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -56,4 +61,26 @@ public class PolicyDataValidatorTests
|
||||
|
||||
Assert.IsType<OrganizationModelOwnershipPolicyModel>(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateAndSerialize_ExcessiveMinLength_ThrowsBadRequestException()
|
||||
{
|
||||
var data = new Dictionary<string, object> { { "minLength", 129 } };
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(() =>
|
||||
PolicyDataValidator.ValidateAndSerialize(data, PolicyType.MasterPassword));
|
||||
|
||||
Assert.Contains("Invalid data for MasterPassword policy", exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateAndSerialize_ExcessiveMinComplexity_ThrowsBadRequestException()
|
||||
{
|
||||
var data = new Dictionary<string, object> { { "minComplexity", 5 } };
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(() =>
|
||||
PolicyDataValidator.ValidateAndSerialize(data, PolicyType.MasterPassword));
|
||||
|
||||
Assert.Contains("Invalid data for MasterPassword policy", exception.Message);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user