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", "}"); [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, }; // minify expected json var expected = JsonSerializer.Serialize(permissions, JsonHelpers.CamelCase); var actual = JsonSerializer.Serialize( JsonHelpers.DeserializeOrNew(_exampleSerializedPermissions, JsonHelpers.CamelCase), JsonHelpers.CamelCase); Assert.Equal(expected, actual); } } }