Exemple #1
0
        public void TestObjectNurse_RemoveChild()
        {
            //init test objects
            UIATestObject childTestObject2 = new UIATestObject();
            UIATestObject childTestObject3 = new UIATestObject();


            _childTestObject.AddChild(_grandChildTestObject);
            _parentTestObject.AddChild(_childTestObject);
            _parentTestObject.AddChild(childTestObject2);
            _parentTestObject.AddChild(childTestObject3);

            //initialize nurse objects
            TestObjectNurse parentNurse = new TestObjectNurse(_parentTestObject);

            TestObjectNurse childNurse  = parentNurse.AddChild(_childTestObject) as TestObjectNurse;
            TestObjectNurse childNurse2 = parentNurse.AddChild(childTestObject2) as TestObjectNurse;
            TestObjectNurse childNurse3 = parentNurse.AddChild(childTestObject3) as TestObjectNurse;

            Assert.AreEqual(3, parentNurse.Children.Count);

            parentNurse.RemoveChild(childTestObject2);
            Assert.AreEqual(2, parentNurse.Children.Count);

            parentNurse.RemoveChild(childNurse3);
            Assert.AreEqual(1, parentNurse.Children.Count);
        }
        public void AppEnvironment_DumpRecyclingBin()
        {
            string modelFilePath = "TempModelFile.json";

            try
            {
                AppEnvironment.CurrentModelFile = AppModelFile.Create(modelFilePath);

                //init test objects
                UIATestObject     _parentTestObject     = new UIATestObject();
                UIATestObject     _childTestObject      = new UIATestObject();
                UIATestObject     childTestObject2      = new UIATestObject();
                VirtualTestObject _grandChildTestObject = new VirtualTestObject();

                CreatePicture(AppEnvironment.CurrentModelFile);


                //initialize nurse objects
                TestObjectNurse parentNurse = new TestObjectNurse(_parentTestObject);

                TestObjectNurse childNurse      = parentNurse.AddChild(_childTestObject) as TestObjectNurse;
                TestObjectNurse childNurse2     = parentNurse.AddChild(childTestObject2) as TestObjectNurse;
                TestObjectNurse grandChildNurse = childNurse.AddChild(_grandChildTestObject) as TestObjectNurse;

                string imagePath1 = AppEnvironment.GetModelResourceFilePath("TestObjectNurseTest.png");
                string imagePath2 = AppEnvironment.GetModelResourceFilePath("TestObjectNurseTest1.png");

                Assert.IsTrue(File.Exists(imagePath1));
                Assert.IsTrue(File.Exists(imagePath2));

                childNurse2.ImageFile     = "TestObjectNurseTest.png";
                grandChildNurse.ImageFile = "TestObjectNurseTest1.png";

                parentNurse.RemoveChild(childNurse);
                Assert.IsTrue(File.Exists(imagePath1));
                parentNurse.RemoveChild(childNurse2);
                Assert.IsTrue(File.Exists(imagePath2));

                AppEnvironment.DumpRecyclingBin(parentNurse);

                Assert.IsFalse(File.Exists(imagePath1));
                Assert.IsFalse(File.Exists(imagePath2));
            }
            finally
            {
                File.Delete("TestObjectNurseTest.png");
                File.Delete("TestObjectNurseTest1.png");
            }
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="newControls"></param>
        /// <param name="parentNode"></param>
        /// <returns>return whether virtual controls are changed</returns>
        public static bool MergeVirtualControlsToTree(VirtualTestObject[] newControls, TreeNode parentNode)
        {
            TestObjectNurse parentNurse = TestObjectNurse.FromTreeNode(parentNode);

            //remove the previously attached nodes.
            List <ITestObject> oldControls = new List <ITestObject>(parentNurse.Children).FindAll(to => ((TestObjectNurse)to).TestObject is VirtualTestObject);

            if (oldControls.Count() == newControls.Count())
            {
                int i = 0;
                foreach (TestObjectNurse oldControl in oldControls)
                {
                    VirtualTestObject oldObject = (VirtualTestObject)oldControl.TestObject;
                    VirtualTestObject newObject = newControls[i];
                    if (oldObject != newObject)
                    {
                        break;
                    }
                    ++i;
                }
                if (i == newControls.Count())
                {
                    return(false);                          //exactly the same, not update.
                }
            }
            foreach (ITestObject testObject in oldControls)
            {
                parentNurse.RemoveChild(testObject);
            }

            //Add new virtual nodes
            foreach (VirtualTestObject testObject in newControls)
            {
                parentNurse.AddChild(testObject);
            }
            return(true);
        }