public void MakeDeepCopyOfComplexObject() { BasicObject caine = this.MakeCaineAndFamily(); BasicObject clone = caine.MakeDeepCopy(); Assert.AreEqual(caine, clone); Assert.AreEqual(caine["Father"], clone["Father"]); Assert.AreEqual(caine["Mother"], clone["Mother"]); Assert.AreNotSame(caine["Father"], clone["Father"]); Assert.AreNotSame(caine["Mother"], clone["Mother"]); }
public void InsertedObjectIsACopy() { BasicObject obj = BasicObject.CreateObject("Name", "Adam", "Age", 800); this.collection.Insert(obj); BasicObject inserted = obj.MakeDeepCopy(); obj["Family"] = "Genesis"; obj["Wife"] = "Eve"; BasicObject retrieved = this.collection.GetObject((Guid)obj["_id"]); Assert.AreEqual(inserted, retrieved); Assert.AreEqual(retrieved, inserted); Assert.AreNotSame(inserted, retrieved); Assert.AreNotEqual(obj, retrieved); Assert.AreNotEqual(obj, inserted); }