Example #1
0
 public void Load(System.Xml.XmlElement element, XmlTestStoreParameters parameters)
 {
     // Note: when the attribute is missing, GetAttribute returns empty string.
     this.RegistryHive = element.GetAttribute(RegistryHiveAttributeName);
     this.AdditionalCommandLineArguments = element.GetAttribute(AdditionalCommandLineArgumentsAttributeName);
     this.AdditionalTestData             = element.GetAttribute(AdditionalTestDataAttributeName);
 }
Example #2
0
        public override void Save(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Save(element, parameters);

            XmlPersistenceUtils.SaveToAttribute(element, GallioTestIdKey, gallioTestId);
            XmlPersistenceUtils.SaveToAttribute(element, AssemblyNameKey, assemblyName);
            XmlPersistenceUtils.SaveToAttribute(element, NamespaceNameKey, namespaceName);
            XmlPersistenceUtils.SaveToAttribute(element, TypeNameKey, typeName);
            XmlPersistenceUtils.SaveToAttribute(element, MemberNameKey, memberName);
            XmlPersistenceUtils.SaveToAttribute(element, ParameterNameKey, parameterName);
            XmlPersistenceUtils.SaveToAttribute(element, PathKey, path);
            XmlPersistenceUtils.SaveToAttribute(element, LineKey, line.ToString(CultureInfo.InvariantCulture));
            XmlPersistenceUtils.SaveToAttribute(element, ColumnKey, column.ToString(CultureInfo.InvariantCulture));
        }
Example #3
0
 /// <summary>
 /// Save the object.
 /// </summary>
 /// <param name="objectToSave">
 /// The object to save.
 /// </param>
 /// <param name="nodeToSaveAt">
 /// The node to save at.
 /// </param>
 /// <param name="parameters">
 /// The parameters.
 /// </param>
 /// <param name="defaultValue">
 /// The default value.
 /// </param>
 public void SaveObject(object objectToSave, XmlNode nodeToSaveAt, XmlTestStoreParameters parameters, object defaultValue)
 {
     if (objectToSave != null)
     {
         if (objectToSave is IXmlTestStore persistable)
         {
             persistable.Save((XmlElement)nodeToSaveAt, parameters);
         }
         else
         {
             this.SaveSimpleData(objectToSave, nodeToSaveAt, defaultValue);
         }
     }
 }
Example #4
0
        public override void Load(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Load(element, parameters);

            gallioTestId  = XmlPersistenceUtils.LoadFromAttribute(element, GallioTestIdKey);
            assemblyName  = XmlPersistenceUtils.LoadFromAttribute(element, AssemblyNameKey);
            namespaceName = XmlPersistenceUtils.LoadFromAttribute(element, NamespaceNameKey);
            typeName      = XmlPersistenceUtils.LoadFromAttribute(element, TypeNameKey);
            memberName    = XmlPersistenceUtils.LoadFromAttribute(element, MemberNameKey);
            parameterName = XmlPersistenceUtils.LoadFromAttribute(element, ParameterNameKey);
            path          = XmlPersistenceUtils.LoadFromAttribute(element, PathKey);
            line          = Convert.ToInt32(XmlPersistenceUtils.LoadFromAttribute(element, LineKey), CultureInfo.InvariantCulture);
            column        = Convert.ToInt32(XmlPersistenceUtils.LoadFromAttribute(element, ColumnKey), CultureInfo.InvariantCulture);
        }
Example #5
0
 public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters)
 {
     if (!string.IsNullOrEmpty(this.RegistryHive))
     {
         element.SetAttribute(RegistryHiveAttributeName, this.RegistryHive);
     }
     if (!string.IsNullOrEmpty(this.AdditionalCommandLineArguments))
     {
         element.SetAttribute(AdditionalCommandLineArgumentsAttributeName, this.AdditionalCommandLineArguments);
     }
     if (!string.IsNullOrEmpty(this.AdditionalTestData))
     {
         element.SetAttribute(AdditionalTestDataAttributeName, this.AdditionalTestData);
     }
 }
Example #6
0
        public override void Load(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Load(element, parameters);

            testStepRunXml = XmlPersistenceUtils.LoadFromElement(element, TestStepRunXmlKey);
        }
        public override void Save(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Save(element, parameters);

            XmlPersistenceUtils.SaveToAttribute(element, GallioTestIdKey, gallioTestId);
            XmlPersistenceUtils.SaveToAttribute(element, AssemblyNameKey, assemblyName);
            XmlPersistenceUtils.SaveToAttribute(element, NamespaceNameKey, namespaceName);
            XmlPersistenceUtils.SaveToAttribute(element, TypeNameKey, typeName);
            XmlPersistenceUtils.SaveToAttribute(element, MemberNameKey, memberName);
            XmlPersistenceUtils.SaveToAttribute(element, ParameterNameKey, parameterName);
            XmlPersistenceUtils.SaveToAttribute(element, PathKey, path);
            XmlPersistenceUtils.SaveToAttribute(element, LineKey, line.ToString(CultureInfo.InvariantCulture));
            XmlPersistenceUtils.SaveToAttribute(element, ColumnKey, column.ToString(CultureInfo.InvariantCulture));
        }
Example #8
0
        internal static void SaveUsingReflection(XmlElement element, object instance, Type requestedType, XmlTestStoreParameters parameters)
        {
            XmlPersistence helper = new XmlPersistence();

            helper.SaveSingleFields(element, instance, requestedType, parameters);
        }
Example #9
0
 /// <summary>
 /// Save list of object .
 /// </summary>
 /// <param name="list">
 /// The list.
 /// </param>
 /// <param name="element">
 /// The parent element.
 /// </param>
 /// <param name="listXmlElement">
 /// The list xml element.
 /// </param>
 /// <param name="itemLocation">
 /// The item location.
 /// </param>
 /// <param name="itemElementName">
 /// The item element name.
 /// </param>
 /// <param name="parameters">
 /// The parameters.
 /// </param>
 public void SaveIEnumerable(IEnumerable list, XmlElement element, string listXmlElement, string itemLocation, string itemElementName, XmlTestStoreParameters parameters)
 {
     if (list != null && list.GetEnumerator().MoveNext())
     {
         XmlElement listElement = (XmlElement)this.EnsureLocationExists(element, listXmlElement);
         foreach (object item in list)
         {
             XmlElement itemXml = this.CreateElement(listElement, itemElementName, item);
             this.SaveObject(item, itemXml, itemLocation, parameters);
         }
     }
 }
Example #10
0
 /// <summary>
 /// Save object.
 /// </summary>
 /// <param name="objectToSave">
 /// The object to save.
 /// </param>
 /// <param name="nodeToSaveAt">
 /// The node to save at.
 /// </param>
 /// <param name="parameters">
 /// The parameters.
 /// </param>
 public void SaveObject(object objectToSave, XmlNode nodeToSaveAt, XmlTestStoreParameters parameters)
 {
     this.SaveObject(objectToSave, nodeToSaveAt, parameters, null);
 }
Example #11
0
        /// <summary>
        /// Based on the StoreXml* attributes saves simple fields
        /// </summary>
        /// <param name="parentXml">
        /// Parent xml
        /// </param>
        /// <param name="instance">
        /// object to save
        /// </param>
        /// <param name="requestedType">
        /// The requested Type.
        /// </param>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        public void SaveSingleFields(XmlElement parentXml, object instance, Type requestedType, XmlTestStoreParameters parameters)
        {
            if (instance == null)
            {
                return; // nothing to do
            }

            Type type = requestedType ?? instance.GetType();

            foreach (FieldPersistenceInfo info in GetFieldInfos(type))
            {
                object fieldValue = info.FieldInfo.GetValue(instance);
                if (fieldValue != null)
                {
                    if (info.FieldAttribute != null)
                    {
                        this.SaveObject(fieldValue, parentXml, info.Location, parameters);
                    }
                    else if (info.SimpleFieldAttribute != null)
                    {
                        this.SaveSimpleField(parentXml, info.Location, fieldValue, info.SimpleFieldAttribute.DefaultValue);
                    }
                }
            }
        }
Example #12
0
        /// <summary>
        /// Default behavior is to create child elements with name same as name of type T.
        /// Does not respect IXmlTestStoreCustom.
        /// </summary>
        public virtual void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters)
        {
            XmlPersistence h = new XmlPersistence();

            h.SaveHashtable(this.container, element, ".", ".", null, ChildElementName, parameters);
        }
        public override void Save(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Save(element, parameters);

            XmlPersistenceUtils.SaveToElement(element, TestStepRunXmlKey, testStepRunXml);
        }
        public override void Load(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Load(element, parameters);

            testStepRunXml = XmlPersistenceUtils.LoadFromElement(element, TestStepRunXmlKey);
        }
Example #15
0
        public override void Save(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Save(element, parameters);

            XmlPersistenceUtils.SaveToElement(element, TestStepRunXmlKey, testStepRunXml);
        }
Example #16
0
 public void Load(XmlElement element, XmlTestStoreParameters parameters)
 {
     this.RegistryHive = element.GetAttribute(RegistryHiveAttributeName);
 }
Example #17
0
 public void Save(XmlElement element, XmlTestStoreParameters parameters)
 {
     element.SetAttribute(RegistryHiveAttributeName, this.RegistryHive);
 }
Example #18
0
 /// <summary>
 /// Save single fields.
 /// </summary>
 /// <param name="parentXml">
 /// The parent xml.
 /// </param>
 /// <param name="instance">
 /// The instance.
 /// </param>
 /// <param name="parameters">
 /// The parameters.
 /// </param>
 public void SaveSingleFields(XmlElement parentXml, object instance, XmlTestStoreParameters parameters)
 {
     this.SaveSingleFields(parentXml, instance, null, parameters);
 }
 public void Load(XmlElement element, XmlTestStoreParameters parameters)
 {
     this.RegistryHive = element.GetAttribute(RegistryHiveAttributeName);
 }
Example #20
0
        /// <summary>
        /// Based on the StoreXml* attributes saves simple fields
        /// </summary>
        /// <param name="objectToSave">
        /// The object to save.
        /// </param>
        /// <param name="parentXml">
        /// The parent xml.
        /// </param>
        /// <param name="location">
        /// The location.
        /// </param>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        public void SaveObject(object objectToSave, XmlElement parentXml, string location, XmlTestStoreParameters parameters)
        {
            if (objectToSave != null && location != null)
            {
                string nameSpaceUri             = this.namespaceUri;
                IXmlTestStoreCustom customStore = objectToSave as IXmlTestStoreCustom;
                if (customStore != null)
                {
                    nameSpaceUri = customStore.NamespaceUri;
                }

                XmlNode xmlNode = this.EnsureLocationExists(parentXml, location, nameSpaceUri);
                this.SaveObject(objectToSave, xmlNode, parameters);

                XmlElement element = xmlNode as XmlElement;
                if (element != null &&
                    !element.HasAttributes &&
                    !element.HasChildNodes &&
                    string.IsNullOrEmpty(element.InnerText))
                {
                    element.ParentNode.RemoveChild(element);    // get rid of empty elements to keep the xml clean
                }
            }
        }
 public void Save(XmlElement element, XmlTestStoreParameters parameters)
 {
     element.SetAttribute(RegistryHiveAttributeName, this.RegistryHive);
 }
Example #22
0
        public void SaveStringDictionary(StringDictionary dict, XmlElement element, string location, string keyLocation, string valueLocation, string itemElementName, XmlTestStoreParameters parameters)
        {
            if (dict != null && dict.Count > 0)
            {
                XmlElement dictionaryElement = (XmlElement)EnsureLocationExists(element, location);
                foreach (DictionaryEntry de in dict)
                {
                    XmlElement itemXml = this.CreateElement(dictionaryElement, itemElementName);

                    this.SaveObject(de.Key, itemXml, keyLocation, parameters);
                    this.SaveObject(de.Value, itemXml, valueLocation, parameters);
                }
            }
        }
 public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters)
 {
     if (!string.IsNullOrEmpty(this.RegistryHive))
     {
         element.SetAttribute(RegistryHiveAttributeName, this.RegistryHive);
     }
     if (!string.IsNullOrEmpty(this.AdditionalCommandLineArguments))
     {
         element.SetAttribute(AdditionalCommandLineArgumentsAttributeName, this.AdditionalCommandLineArguments);
     }
     if (!string.IsNullOrEmpty(this.AdditionalTestData))
     {
         element.SetAttribute(AdditionalTestDataAttributeName, this.AdditionalTestData);
     }
 }
Example #24
0
 /// <summary>
 /// Save list.
 /// </summary>
 /// <param name="list">
 /// The list.
 /// </param>
 /// <param name="element">
 /// The element.
 /// </param>
 /// <param name="listXmlElement">
 /// The list xml element.
 /// </param>
 /// <param name="itemLocation">
 /// The item location.
 /// </param>
 /// <param name="itemElementName">
 /// The item element name.
 /// </param>
 /// <param name="parameters">
 /// The parameters.
 /// </param>
 /// <typeparam name="V"> Generic parameter
 /// </typeparam>
 public void SaveList <V>(IList <V> list, XmlElement element, string listXmlElement, string itemLocation, string itemElementName, XmlTestStoreParameters parameters)
 {
     if (list != null && list.Count > 0)
     {
         XmlElement listElement = (XmlElement)this.EnsureLocationExists(element, listXmlElement);
         foreach (V item in list)
         {
             XmlElement itemXml = this.CreateElement(listElement, itemElementName, item);
             this.SaveObject(item, itemXml, itemLocation, parameters);
         }
     }
 }
 public void Load(System.Xml.XmlElement element, XmlTestStoreParameters parameters)
 {
     // Note: when the attribute is missing, GetAttribute returns empty string.
     this.RegistryHive = element.GetAttribute(RegistryHiveAttributeName);
     this.AdditionalCommandLineArguments = element.GetAttribute(AdditionalCommandLineArgumentsAttributeName);
     this.AdditionalTestData = element.GetAttribute(AdditionalTestDataAttributeName);
 }
Example #26
0
        /// <summary>
        /// Called when a test run is completed.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// Test run complete events arguments.
        /// </param>
        internal void TestRunCompleteHandler(object sender, TestRunCompleteEventArgs e)
        {
            // Create test run
            // If abort occurs there is no call to TestResultHandler which results in testRun not created.
            // This happens when some test aborts in the first batch of execution.
            if (this.testRun == null)
            {
                CreateTestRun();
            }

            XmlPersistence         helper      = new XmlPersistence();
            XmlTestStoreParameters parameters  = XmlTestStoreParameters.GetParameters();
            XmlElement             rootElement = helper.CreateRootElement("TestRun");

            // Save runId/username/creation time etc.
            this.testRun.Finished = DateTime.UtcNow;
            helper.SaveSingleFields(rootElement, this.testRun, parameters);

            // Save test settings
            helper.SaveObject(this.testRun.RunConfiguration, rootElement, "TestSettings", parameters);

            // Save test results
            helper.SaveIEnumerable(this.results.Values, rootElement, "Results", ".", null, parameters);

            // Save test definitions
            helper.SaveIEnumerable(this.testElements.Values, rootElement, "TestDefinitions", ".", null, parameters);

            // Save test entries
            helper.SaveIEnumerable(this.entries.Values, rootElement, "TestEntries", ".", "TestEntry", parameters);

            // Save default categories
            List <TestListCategory> categories = new List <TestListCategory>();

            categories.Add(TestListCategory.UncategorizedResults);
            categories.Add(TestListCategory.AllResults);
            helper.SaveList(categories, rootElement, "TestLists", ".", "TestList", parameters);

            // Save summary
            if (this.testRunOutcome == TrxLoggerObjectModel.TestOutcome.Passed)
            {
                this.testRunOutcome = TrxLoggerObjectModel.TestOutcome.Completed;
            }

            testRunOutcome = changeTestOutcomeIfNecessary(testRunOutcome);

            List <string>             errorMessages    = new List <string>();
            List <CollectorDataEntry> collectorEntries = this.converter.ToCollectionEntries(e.AttachmentSets, this.testRun, this.testResultsDirPath);
            IList <string>            resultFiles      = this.converter.ToResultFiles(e.AttachmentSets, this.testRun, this.testResultsDirPath, errorMessages);

            if (errorMessages.Count > 0)
            {
                // Got some errors while attaching files, report them and set the outcome of testrun to be Error...
                this.testRunOutcome = TrxLoggerObjectModel.TestOutcome.Error;
                foreach (string msg in errorMessages)
                {
                    RunInfo runMessage = new RunInfo(msg, null, Environment.MachineName, TrxLoggerObjectModel.TestOutcome.Error);
                    this.runLevelErrorsAndWarnings.Add(runMessage);
                }
            }

            TestRunSummary runSummary = new TestRunSummary(
                this.totalTests,
                this.passTests + this.failTests,
                this.passTests,
                this.failTests,
                this.testRunOutcome,
                this.runLevelErrorsAndWarnings,
                this.runLevelStdOut.ToString(),
                resultFiles,
                collectorEntries);

            helper.SaveObject(runSummary, rootElement, "ResultSummary", parameters);


            this.ReserveTrxFilePath();
            this.PopulateTrxFile(this.trxFilePath, rootElement);
        }
        public override void Load(XmlElement element, XmlTestStoreParameters parameters)
        {
            base.Load(element, parameters);

            gallioTestId = XmlPersistenceUtils.LoadFromAttribute(element, GallioTestIdKey);
            assemblyName = XmlPersistenceUtils.LoadFromAttribute(element, AssemblyNameKey);
            namespaceName = XmlPersistenceUtils.LoadFromAttribute(element, NamespaceNameKey);
            typeName = XmlPersistenceUtils.LoadFromAttribute(element, TypeNameKey);
            memberName = XmlPersistenceUtils.LoadFromAttribute(element, MemberNameKey);
            parameterName = XmlPersistenceUtils.LoadFromAttribute(element, ParameterNameKey);
            path = XmlPersistenceUtils.LoadFromAttribute(element, PathKey);
            line = Convert.ToInt32(XmlPersistenceUtils.LoadFromAttribute(element, LineKey), CultureInfo.InvariantCulture);
            column = Convert.ToInt32(XmlPersistenceUtils.LoadFromAttribute(element, ColumnKey), CultureInfo.InvariantCulture);
        }