public void CopyWithRecursion() { // ARRAGE BClassWithRecursion original = new BClassWithRecursion() { id = 69, Age = 23, Name = "Bloodthirst" }; original.Recursion = original; Stopwatch profile = new Stopwatch(); // ACT profile.Start(); BClassWithRecursion copy = instanceRecursionCopier.Copy(original); profile.Stop(); TestContext.Out.WriteLine($"Time for copying {nameof(BClassWithRecursion)} : { profile.ElapsedTicks } ticks = { profile.ElapsedMilliseconds } ms "); // ASSERT Assert.AreNotSame(original, copy); Assert.AreNotSame(original.Recursion, copy.Recursion); Assert.AreSame(original, original.Recursion); Assert.AreSame(copy, copy.Recursion); Assert.AreEqual(original.id, copy.id); Assert.AreEqual(original.Age, copy.Age); Assert.AreSame(original.Name, copy.Name); }
public void SimpleInterfaceCopyWithRecursion() { // ARRAGE BClassWithRecursion original = new BClassWithRecursion() { id = 69, Age = 23, Name = "Bloodthirst" }; original.Recursion = original; Stopwatch profile = new Stopwatch(); // ACT profile.Start(); IBClass copy = interfaceCopier.Copy(original); profile.Stop(); TestContext.Out.WriteLine($"Time for copying {nameof(IBClass)} : { profile.ElapsedTicks } ticks = { profile.ElapsedMilliseconds } ms "); // ASSERT Assert.AreNotSame(original, copy); Assert.IsInstanceOf <BClassWithRecursion>(original); Assert.IsInstanceOf <BClassWithRecursion>(copy); Assert.AreSame(original.Name, copy.Name); }