Ctrl K
ComunidadGuías…

src/Ombi.Core.Tests/Entities/OmbiUserSerializationTests.cs

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
using Newtonsoft.Json;
using NUnit.Framework;
using Ombi.Store.Entities;

namespace Ombi.Core.Tests.Entities
{
    [TestFixture]
    public class OmbiUserSerializationTests
    {
        private static OmbiUser CreateUser() => new OmbiUser
        {
            Id = "user-1",
            UserName = "someone",
            Email = "someone@example.com",
            UserAccessToken = "access-token-secret",
            MediaServerToken = "media-server-token-secret",
            PasswordHash = "password-hash-secret",
            SecurityStamp = "stamp-value-one",
            ConcurrencyStamp = "concurrency-stamp-secret",
        };

        [TestCase("access-token-secret")]
        [TestCase("media-server-token-secret")]
        [TestCase("password-hash-secret")]
        [TestCase("stamp-value-one")]
        [TestCase("concurrency-stamp-secret")]
        public void Serialized_User_DoesNotContain_Secret(string secret)
        {
            var json = JsonConvert.SerializeObject(CreateUser());

            Assert.That(json, Does.Not.Contain(secret));
        }

        [TestCase("userAccessToken")]
        [TestCase("mediaServerToken")]
        public void Serialized_User_DoesNotContain_TokenProperty(string property)
        {
            var json = JsonConvert.SerializeObject(CreateUser(), new JsonSerializerSettings
            {
                ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
            });

            Assert.That(json, Does.Not.Contain($"\"{property}\""));
        }

        [Test]
        public void Serialized_User_StillContains_PublicFields()
        {
            var json = JsonConvert.SerializeObject(CreateUser());

            Assert.That(json, Does.Contain("someone"));
        }
    }
}