public void XmlConstructorTest()
        {
            ModuleInstance mi;
            PageInstance   page, p;
            XmlDocument    xdoc;
            XmlNode        pageNode;
            Package        pkg;
            Boolean        DisplayInNav, RequireSSL, ValidateRequest;
            String         PageName, PageDescription, EnableViewState, ShowCss;
            File           f;
            Guid           PageGuid;
            int            TempPageID;


            //
            // Prepare the test.
            //
            xdoc       = new XmlDocument();
            pageNode   = xdoc.CreateElement("Page");
            TempPageID = -2;
            AddXmlAttribute(pageNode, "temp_page_id", TempPageID.ToString());
            PageName = "Test Page";
            AddXmlAttribute(pageNode, "page_name", PageName);
            PageDescription = "Some description";
            AddXmlAttribute(pageNode, "page_desc", PageDescription);
            DisplayInNav = true;
            AddXmlAttribute(pageNode, "display_in_nav", "1");
            RequireSSL = false;
            AddXmlAttribute(pageNode, "require_ssl", "0");
            ValidateRequest = true;
            AddXmlAttribute(pageNode, "validate_request", "1");
            PageGuid = Guid.NewGuid();
            AddXmlAttribute(pageNode, "guid", PageGuid.ToString());
            EnableViewState = "true";
            ShowCss         = "false";
            AddXmlAttribute(pageNode, "page_settings", "EnableViewState=" + EnableViewState + ";ShowCss=" + ShowCss);
            pkg = new Package();
            p   = new PageInstance();
            pkg.Pages.Add(p);
            pageNode.AppendChild(p.Save(xdoc, false));
            mi = new ModuleInstance();
            p.Modules.Add(mi);
            pageNode.AppendChild(mi.Save(xdoc, false));
            f = new File();
            pageNode.AppendChild(f.Save(xdoc, false));

            //
            // Run the test.
            //
            page = new PageInstance(pageNode);

            //
            // Verify the test.
            //
            Assert.AreEqual(TempPageID, page.PageID);
            Assert.AreEqual(PageName, page.PageName);
            Assert.AreEqual(PageDescription, page.PageDescription);
            Assert.AreEqual(DisplayInNav, page.DisplayInNav);
            Assert.AreEqual(RequireSSL, page.RequireSSL);
            Assert.AreEqual(ValidateRequest, page.ValidateRequest);
            Assert.AreEqual(PageGuid.ToString(), page.Guid);
            Assert.AreEqual(EnableViewState, page.Settings[0].Value);
            Assert.AreEqual(ShowCss, page.Settings[1].Value);
            Assert.AreEqual(1, page.Files.Count);
            Assert.AreEqual(1, page.Modules.Count);
            Assert.AreEqual(1, page.Pages.Count);
        }
        public void SaveTest()
        {
            ModuleInstanceSetting mis;
            ModuleInstance        mi;
            PageInstance          pi;
            XmlDocument           xdoc;
            Package package;
            XmlNode moduleInstanceNode;
            Boolean ShowTitle;
            String  ModuleTitle, TemplateFrameName, ModuleDetails;
            Guid    ModuleInstanceGuid;
            int     TempModuleInstanceID, TempModuleID, TempPageID;


            //
            // Setup the test.
            //
            xdoc    = new XmlDocument();
            package = new Package();
            pi      = new PageInstance();
            package.Pages.Add(pi);
            mi = new ModuleInstance();
            pi.Modules.Add(mi);
            TempPageID           = -3;
            TempModuleInstanceID = -6;
            ModuleTitle          = "New Module";
            ShowTitle            = true;
            TemplateFrameName    = "Main";
            ModuleDetails        = "Some details";
            TempModuleID         = -9;
            ModuleInstanceGuid   = new Guid();
            pi._PageID           = TempPageID;
            mi._ModuleInstanceID = TempModuleInstanceID;
            mi.ModuleTitle       = ModuleTitle;
            mi.ShowTitle         = Convert.ToBoolean(Convert.ToInt32(ShowTitle));
            mi.TemplateFrameName = TemplateFrameName;
            mi.ModuleDetails     = ModuleDetails;
            mi.ModuleTypeID      = TempModuleID;
            mi.Guid   = ModuleInstanceGuid;
            mis       = new ModuleInstanceSetting("Setting1");
            mis.Value = "Value1";
            mis.Type  = ModuleInstanceSettingType.Text;
            mi.Settings.Add(mis);
            mis       = new ModuleInstanceSetting("Setting2");
            mis.Value = "Value2";
            mis.Type  = ModuleInstanceSettingType.Text;
            mi.Settings.Add(mis);

            //
            // Run the test.
            //
            moduleInstanceNode = mi.Save(xdoc, false);

            //
            // Verify the test.
            //
            Assert.AreEqual(2, moduleInstanceNode.ChildNodes.Count);
            Assert.AreEqual(TempModuleInstanceID.ToString(), moduleInstanceNode.Attributes["temp_module_instance_id"].Value);
            Assert.AreEqual(ModuleTitle, moduleInstanceNode.Attributes["module_title"].Value);
            Assert.AreEqual(Convert.ToInt32(ShowTitle).ToString(), moduleInstanceNode.Attributes["show_title"].Value);
            Assert.AreEqual(TemplateFrameName, moduleInstanceNode.Attributes["template_frame_name"].Value);
            Assert.AreEqual("0", moduleInstanceNode.Attributes["template_frame_order"].Value);
            Assert.AreEqual(ModuleDetails, moduleInstanceNode.Attributes["module_details"].Value);
            Assert.AreEqual("0", moduleInstanceNode.Attributes["system_flag"].Value);
            Assert.AreEqual("0", moduleInstanceNode.Attributes["mandatory"].Value);
            Assert.AreEqual("0", moduleInstanceNode.Attributes["movable"].Value);
            Assert.AreEqual("", moduleInstanceNode.Attributes["description"].Value);
            Assert.AreEqual("", moduleInstanceNode.Attributes["image_path"].Value);
            Assert.AreEqual(TempModuleID.ToString(), moduleInstanceNode.Attributes["temp_module_id"].Value);
            Assert.AreEqual(TempPageID.ToString(), moduleInstanceNode.Attributes["temp_page_id"].Value);
            Assert.AreEqual("Setting1=Value1;Setting2=Value2", moduleInstanceNode.Attributes["module_settings"].Value);
            Assert.AreEqual(ModuleInstanceGuid.ToString(), moduleInstanceNode.Attributes["module_instance_guid"].Value);
            Assert.AreEqual(TempPageID.ToString(), moduleInstanceNode.Attributes["temp_page_or_template_id"].Value);
            Assert.AreEqual("1", moduleInstanceNode.Attributes["page_instance"].Value);
        }