Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }