Files
Common-VS2019/SacsCoreUnitTests/Standard/Base/Generic/ObjectReferences_Tester.cs
T

88 lines
2.9 KiB
C#

using System.Drawing;
using NUnit.Framework;
namespace Sacs.UnitTests.Net.Standard.Base.Generic
{
[TestFixture]
public class ObjectReferences_Tester
{
// --- Tests ---
[Test]
public void ObjectReferences_ChangeValuesOnReferencedObject ()
{
// size2 starts as a reference to size1.
Size size1 = new Size(10, 20);
Size size2 = size1;
Size size3 = new Size(10, 20);
Assert.That(size2, Is.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size2));
// Change size1 values - doesn't change size2.
size1.Width = 100;
size1.Height = 200;
Assert.That(size2, Is.Not.EqualTo(size1));
Assert.That(size3, Is.Not.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size2));
}
[Test]
public void ObjectReferences_ChangeValuesOnObjectReference ()
{
// size2 starts as a reference to size1.
Size size1 = new Size(10, 20);
Size size2 = size1;
Size size3 = new Size(10, 20);
Assert.That(size2, Is.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size2));
// Change size2 values - doesn't change size1.
size2.Width = 100;
size2.Height = 200;
Assert.That(size2, Is.Not.EqualTo(size1));
Assert.That(size3, Is.EqualTo(size1));
Assert.That(size3, Is.Not.EqualTo(size2));
}
// Modify class value.
class TestData
{
public int a = 0;
public int B { get; set; }
public Size size1 = new Size(10,20);
public Size Size2 { get; set; } = new Size(30, 40);
}
[Test]
public void ObjectReferences_ChangeClassValues ()
{
TestData td1 = new TestData();
TestData td2 = td1;
Assert.That(td2, Is.EqualTo(td1));
td1.a++; // td2 is still a reference to td1 with the same values.
Assert.That(td2, Is.EqualTo(td1));
Assert.That(td2.a, Is.EqualTo(td1.a));
Assert.That(td2.B, Is.EqualTo(td1.B));
Assert.That(td2.size1, Is.EqualTo(td1.size1));
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
td1.B++; // td2 is still a reference to td1 with the same values.
Assert.That(td2, Is.EqualTo(td1));
Assert.That(td2.a, Is.EqualTo(td1.a));
Assert.That(td2.B, Is.EqualTo(td1.B));
Assert.That(td2.size1, Is.EqualTo(td1.size1));
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
td1.size1.Width += 10; // td2 is still a reference to td1 with the same values.
Assert.That(td2, Is.EqualTo(td1));
Assert.That(td2.a, Is.EqualTo(td1.a));
Assert.That(td2.B, Is.EqualTo(td1.B));
Assert.That(td2.size1, Is.EqualTo(td1.size1));
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
td1.Size2 = new Size(td1.Size2.Width, td1.Size2.Height + 10); // td2 is still a reference to td1 with the same values.
Assert.That(td2, Is.EqualTo(td1));
Assert.That(td2.a, Is.EqualTo(td1.a));
Assert.That(td2.B, Is.EqualTo(td1.B));
Assert.That(td2.size1, Is.EqualTo(td1.size1));
Assert.That(td2.Size2, Is.EqualTo(td1.Size2));
}
// --- The End ---
}
}