public void Copy() { var causalities = new Stack <Causality>(); causalities.Push(new Causality(new Port("x"))); causalities.Push(new Causality(new Port("y"))); var sut = new CausalityStack(causalities); var copyOfSut = sut.Copy(); Assert.AreNotSame(copyOfSut, sut); Assert.AreEqual("y", copyOfSut.Peek().Port.Fullname); copyOfSut.Pop(); Assert.AreEqual("x", copyOfSut.Peek().Port.Fullname); copyOfSut.Pop(); Assert.IsTrue(copyOfSut.IsEmpty); Assert.AreEqual(2, causalities.Count); }