Files
Umbraco-CMS/src/Umbraco.Tests/Models/UserTests.cs

96 lines
3.3 KiB
C#

using System;
using NUnit.Framework;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Serialization;
namespace Umbraco.Tests.Models
{
[TestFixture]
public class UserTests
{
[Test]
public void Can_Deep_Clone()
{
var item = new User(new UserType(){Id = 3})
{
Id = 3,
Key = Guid.NewGuid(),
UpdateDate = DateTime.Now,
CreateDate = DateTime.Now,
Name = "Test",
Comments = "comments",
DefaultPermissions = new[]{"a","b","c"},
DefaultToLiveEditing = false,
Email = "test@test.com",
Language = "en",
FailedPasswordAttempts = 3,
IsApproved = true,
IsLockedOut = true,
LastLockoutDate = DateTime.Now,
LastLoginDate = DateTime.Now,
LastPasswordChangeDate = DateTime.Now,
//Password = "test pass",
//PasswordAnswer = "answer",
PasswordQuestion = "question",
//ProviderUserKey = "user key",
SessionTimeout = 5,
StartContentId = 3,
StartMediaId = 8,
Username = "username"
};
var clone = (User)item.DeepClone();
Assert.AreNotSame(clone, item);
Assert.AreEqual(clone, item);
Assert.AreNotSame(clone.UserType, item.UserType);
Assert.AreEqual(clone.UserType, item.UserType);
//Verify normal properties with reflection
var allProps = clone.GetType().GetProperties();
foreach (var propertyInfo in allProps)
{
Assert.AreEqual(propertyInfo.GetValue(clone, null), propertyInfo.GetValue(item, null));
}
}
[Test]
public void Can_Serialize_Without_Error()
{
var ss = new SerializationService(new JsonNetSerializer());
var item = new User(new UserType() { Id = 3 })
{
Id = 3,
Key = Guid.NewGuid(),
UpdateDate = DateTime.Now,
CreateDate = DateTime.Now,
Name = "Test",
Comments = "comments",
DefaultPermissions = new[] { "a", "b", "c" },
DefaultToLiveEditing = false,
Email = "test@test.com",
Language = "en",
FailedPasswordAttempts = 3,
IsApproved = true,
IsLockedOut = true,
LastLockoutDate = DateTime.Now,
LastLoginDate = DateTime.Now,
LastPasswordChangeDate = DateTime.Now,
//Password = "test pass",
//PasswordAnswer = "answer",
PasswordQuestion = "question",
//ProviderUserKey = "user key",
SessionTimeout = 5,
StartContentId = 3,
StartMediaId = 8,
Username = "username"
};
var result = ss.ToStream(item);
var json = result.ResultStream.ToJsonString();
Console.WriteLine(json);
}
}
}