public void SmartlyCloneTest_ShouldReturnClone_IfCloneableIsPassed() { // Arrange var a = new CloneableMock(); a.ValueMember = 1; a.ObjectMember = new object(); // Act var b = (CloneableMock)a.SmartlyClone(); // Assert Assert.AreNotSame(a, b); Assert.AreEqual(a.ValueMember, b.ValueMember); Assert.AreNotSame(a.ObjectMember, b.ObjectMember); }