Move TestClone class
This commit is contained in:
77
src/Umbraco.Tests.Common/TestClone.cs
Normal file
77
src/Umbraco.Tests.Common/TestClone.cs
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
using System;
|
||||||
|
using Umbraco.Core.Models;
|
||||||
|
|
||||||
|
namespace Umbraco.Tests.Common
|
||||||
|
{
|
||||||
|
public class TestClone : IDeepCloneable, IEquatable<TestClone>
|
||||||
|
{
|
||||||
|
public TestClone(Guid id)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
IsClone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TestClone()
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Guid Id { get; }
|
||||||
|
public bool IsClone { get; }
|
||||||
|
|
||||||
|
public object DeepClone()
|
||||||
|
{
|
||||||
|
return new TestClone(Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates whether the current object is equal to another object of the same type.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
|
||||||
|
/// </returns>
|
||||||
|
/// <param name="other">An object to compare with this object.</param>
|
||||||
|
public bool Equals(TestClone other)
|
||||||
|
{
|
||||||
|
if (ReferenceEquals(null, other)) return false;
|
||||||
|
if (ReferenceEquals(this, other)) return true;
|
||||||
|
return Id.Equals(other.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determines whether the specified object is equal to the current object.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// true if the specified object is equal to the current object; otherwise, false.
|
||||||
|
/// </returns>
|
||||||
|
/// <param name="obj">The object to compare with the current object. </param>
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (ReferenceEquals(null, obj)) return false;
|
||||||
|
if (ReferenceEquals(this, obj)) return true;
|
||||||
|
if (obj.GetType() != this.GetType()) return false;
|
||||||
|
return Equals((TestClone)obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Serves as the default hash function.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// A hash code for the current object.
|
||||||
|
/// </returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return Id.GetHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator ==(TestClone left, TestClone right)
|
||||||
|
{
|
||||||
|
return Equals(left, right);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool operator !=(TestClone left, TestClone right)
|
||||||
|
{
|
||||||
|
return Equals(left, right) == false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
using System;
|
using System.Linq;
|
||||||
using System.Linq;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Umbraco.Core.Collections;
|
using Umbraco.Core.Collections;
|
||||||
using Umbraco.Core.Models;
|
using Umbraco.Tests.Common;
|
||||||
|
|
||||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Collections
|
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Collections
|
||||||
{
|
{
|
||||||
@@ -94,77 +93,5 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Collections
|
|||||||
Assert.AreNotSame(item, clone);
|
Assert.AreNotSame(item, clone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestClone : IDeepCloneable, IEquatable<TestClone>
|
|
||||||
{
|
|
||||||
public TestClone(Guid id)
|
|
||||||
{
|
|
||||||
Id = id;
|
|
||||||
IsClone = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TestClone()
|
|
||||||
{
|
|
||||||
Id = Guid.NewGuid();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Guid Id { get; }
|
|
||||||
public bool IsClone { get; }
|
|
||||||
|
|
||||||
public object DeepClone()
|
|
||||||
{
|
|
||||||
return new TestClone(Id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Indicates whether the current object is equal to another object of the same type.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
|
|
||||||
/// </returns>
|
|
||||||
/// <param name="other">An object to compare with this object.</param>
|
|
||||||
public bool Equals(TestClone other)
|
|
||||||
{
|
|
||||||
if (ReferenceEquals(null, other)) return false;
|
|
||||||
if (ReferenceEquals(this, other)) return true;
|
|
||||||
return Id.Equals(other.Id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines whether the specified object is equal to the current object.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// true if the specified object is equal to the current object; otherwise, false.
|
|
||||||
/// </returns>
|
|
||||||
/// <param name="obj">The object to compare with the current object. </param>
|
|
||||||
public override bool Equals(object obj)
|
|
||||||
{
|
|
||||||
if (ReferenceEquals(null, obj)) return false;
|
|
||||||
if (ReferenceEquals(this, obj)) return true;
|
|
||||||
if (obj.GetType() != this.GetType()) return false;
|
|
||||||
return Equals((TestClone) obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Serves as the default hash function.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// A hash code for the current object.
|
|
||||||
/// </returns>
|
|
||||||
public override int GetHashCode()
|
|
||||||
{
|
|
||||||
return Id.GetHashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool operator ==(TestClone left, TestClone right)
|
|
||||||
{
|
|
||||||
return Equals(left, right);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool operator !=(TestClone left, TestClone right)
|
|
||||||
{
|
|
||||||
return Equals(left, right) == false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ using Umbraco.Core.Composing;
|
|||||||
using Umbraco.Core.Logging;
|
using Umbraco.Core.Logging;
|
||||||
using Umbraco.Core.Models;
|
using Umbraco.Core.Models;
|
||||||
using Umbraco.Core.Models.Entities;
|
using Umbraco.Core.Models.Entities;
|
||||||
using Umbraco.Tests.Collections;
|
using Umbraco.Tests.Common;
|
||||||
using Umbraco.Tests.TestHelpers;
|
using Umbraco.Tests.TestHelpers;
|
||||||
using Umbraco.Web.Cache;
|
using Umbraco.Web.Cache;
|
||||||
|
|
||||||
@@ -41,12 +41,12 @@ namespace Umbraco.Tests.Cache
|
|||||||
[Test]
|
[Test]
|
||||||
public void Clones_List()
|
public void Clones_List()
|
||||||
{
|
{
|
||||||
var original = new DeepCloneableList<DeepCloneableListTests.TestClone>(ListCloneBehavior.Always);
|
var original = new DeepCloneableList<TestClone>(ListCloneBehavior.Always);
|
||||||
original.Add(new DeepCloneableListTests.TestClone());
|
original.Add(new TestClone());
|
||||||
original.Add(new DeepCloneableListTests.TestClone());
|
original.Add(new TestClone());
|
||||||
original.Add(new DeepCloneableListTests.TestClone());
|
original.Add(new TestClone());
|
||||||
|
|
||||||
var val = _provider.GetCacheItem<DeepCloneableList<DeepCloneableListTests.TestClone>>("test", () => original);
|
var val = _provider.GetCacheItem<DeepCloneableList<TestClone>>("test", () => original);
|
||||||
|
|
||||||
Assert.AreEqual(original.Count, val.Count);
|
Assert.AreEqual(original.Count, val.Count);
|
||||||
foreach (var item in val)
|
foreach (var item in val)
|
||||||
|
|||||||
Reference in New Issue
Block a user