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); }
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)); }
/// <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); } } }
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); }
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); } }
public override void Load(XmlElement element, XmlTestStoreParameters parameters) { base.Load(element, parameters); testStepRunXml = XmlPersistenceUtils.LoadFromElement(element, TestStepRunXmlKey); }
internal static void SaveUsingReflection(XmlElement element, object instance, Type requestedType, XmlTestStoreParameters parameters) { XmlPersistence helper = new XmlPersistence(); helper.SaveSingleFields(element, instance, requestedType, parameters); }
/// <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); } } }
/// <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); }
/// <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); } } } }
/// <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 void Load(XmlElement element, XmlTestStoreParameters parameters) { this.RegistryHive = element.GetAttribute(RegistryHiveAttributeName); }
public void Save(XmlElement element, XmlTestStoreParameters parameters) { element.SetAttribute(RegistryHiveAttributeName, this.RegistryHive); }
/// <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); }
/// <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 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); } } }
/// <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); } } }
/// <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); }