You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.2 KiB
61 lines
2.2 KiB
using System.Text.Json; |
|
using Bit.Core.Models.Data; |
|
using Bit.Core.Utilities; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.Models |
|
{ |
|
public class PermissionsTests |
|
{ |
|
private static readonly string _exampleSerializedPermissions = string.Concat( |
|
"{", |
|
"\"accessEventLogs\": false,", |
|
"\"accessImportExport\": false,", |
|
"\"accessReports\": false,", |
|
"\"manageAllCollections\": true,", // exists for backwards compatibility |
|
"\"createNewCollections\": true,", |
|
"\"editAnyCollection\": true,", |
|
"\"deleteAnyCollection\": true,", |
|
"\"manageAssignedCollections\": false,", // exists for backwards compatibility |
|
"\"editAssignedCollections\": false,", |
|
"\"deleteAssignedCollections\": false,", |
|
"\"manageGroups\": false,", |
|
"\"managePolicies\": false,", |
|
"\"manageSso\": false,", |
|
"\"manageUsers\": false,", |
|
"\"manageResetPassword\": false,", |
|
"\"manageScim\": false", |
|
"}"); |
|
|
|
[Fact] |
|
public void Serialization_Success() |
|
{ |
|
var permissions = new Permissions |
|
{ |
|
AccessEventLogs = false, |
|
AccessImportExport = false, |
|
AccessReports = false, |
|
CreateNewCollections = true, |
|
EditAnyCollection = true, |
|
DeleteAnyCollection = true, |
|
EditAssignedCollections = false, |
|
DeleteAssignedCollections = false, |
|
ManageGroups = false, |
|
ManagePolicies = false, |
|
ManageSso = false, |
|
ManageUsers = false, |
|
ManageResetPassword = false, |
|
ManageScim = false, |
|
}; |
|
|
|
// minify expected json |
|
var expected = JsonSerializer.Serialize(permissions, JsonHelpers.CamelCase); |
|
|
|
var actual = JsonSerializer.Serialize( |
|
JsonHelpers.DeserializeOrNew<Permissions>(_exampleSerializedPermissions, JsonHelpers.CamelCase), |
|
JsonHelpers.CamelCase); |
|
|
|
Assert.Equal(expected, actual); |
|
} |
|
} |
|
}
|
|
|