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"]);
        }
Example #2
0
        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);
        }