public virtual void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence h = new XmlPersistence(); h.SaveSimpleField(element, "@name", this.name, null); h.SaveSimpleField(element, "@storage", this.storage, string.Empty); h.SaveSimpleField(element, "@priority", this.priority, DefaultPriority); h.SaveSimpleField(element, "Owners/Owner/@name", this.owner, string.Empty); h.SaveObject(this.testCategories, element, "TestCategory", parameters); if (this.executionId != null) { h.SaveGuid(element, "Execution/@id", this.executionId.Id); } if (this.parentExecutionId != null) { h.SaveGuid(element, "Execution/@parentId", this.parentExecutionId.Id); } h.SaveObject(this.workItems, element, "Workitems", parameters); XmlTestStoreParameters testIdParameters = XmlTestStoreParameters.GetParameters(); testIdParameters[TestId.IdLocationKey] = "@id"; h.SaveObject(this.id, element, testIdParameters); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameter /// </param> public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence h = new XmlPersistence(); h.SaveSimpleField(element, "@name", this.name, null); h.SaveSimpleField(element, "@storage", this.storage, string.Empty); h.SaveSimpleField(element, "@priority", this.priority, DefaultPriority); h.SaveSimpleField(element, "Owners/Owner/@name", this.owner, string.Empty); h.SaveObject(this.testCategories, element, "TestCategory", parameters); // Save the test ID. We exclude "test" from the default locations used by TestId, since this is already a test // element. Ideally, we would let TestId save the IDs to the default locations, but the previous behavior of // TestElement was to store the test ID at @testId, and since we can't change this, TestId supports custom // locations for the IDs. See TestId.GetLocations for more info. XmlTestStoreParameters testIdParameters = XmlTestStoreParameters.GetParameters(); testIdParameters[TestId.IdLocationKey] = "@id"; h.SaveObject(this.id, element, testIdParameters); if (this.executionId != null) { h.SaveGuid(element, "Execution/@id", this.executionId.Id); } h.SaveSimpleField(element, "TestMethod/@codeBase", this.codeBase, string.Empty); h.SaveSimpleField(element, "TestMethod/@executorUriOfAdapter", this.executorUriOfAdapter, string.Empty); h.SaveObject(this.testMethod, element, "TestMethod", parameters); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameter /// </param> public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence helper = new XmlPersistence(); helper.SaveObject(this.id, element, ".", parameters); helper.SaveSimpleField(element, "@testName", this.testName, string.Empty); helper.SaveSimpleField(element, "@computerName", this.computerInfo, string.Empty); helper.SaveSimpleField(element, "@duration", this.duration, default(TimeSpan)); helper.SaveSimpleField(element, "@startTime", this.startTime, default(DateTime)); helper.SaveSimpleField(element, "@endTime", this.endTime, default(DateTime)); helper.SaveGuid(element, "@testType", this.testType.Id); if (this.stdOut != null) { this.stdOut = this.stdOut.Trim(); } if (this.stdErr != null) { this.stdErr = this.stdErr.Trim(); } helper.SaveSimpleField(element, "@outcome", this.outcome, default(TestOutcome)); helper.SaveSimpleField(element, "Output/StdOut", this.stdOut, string.Empty); helper.SaveSimpleField(element, "Output/StdErr", this.stdErr, string.Empty); helper.SaveSimpleField(element, "Output/DebugTrace", this.debugTrace, string.Empty); helper.SaveObject(this.errorInfo, element, "Output/ErrorInfo", parameters); helper.SaveGuid(element, "@testListId", this.categoryId.Id); helper.SaveIEnumerable(this.textMessages, element, "Output/TextMessages", ".", "Message", parameters); helper.SaveSimpleField(element, "@relativeResultsDirectory", this.relativeTestResultsDirectory, null); helper.SaveIEnumerable(this.resultFiles.Keys, element, "ResultFiles", "@path", "ResultFile", parameters); helper.SaveIEnumerable(this.collectorDataEntries, element, "CollectorDataEntries", ".", "Collector", parameters); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameter /// </param> public override void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { base.Save(element, parameters); XmlPersistence h = new XmlPersistence(); h.SaveSimpleField(element, "TestMethod/@codeBase", this.codeBase, string.Empty); h.SaveSimpleField(element, "TestMethod/@adapterTypeName", this.adapter, string.Empty); h.SaveObject(this.testMethod, element, "TestMethod", parameters); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameters. /// </param> public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence helper = new XmlPersistence(); helper.SaveSingleFields(element, this, parameters); helper.SaveObject(this.testId, element, null); helper.SaveGuid(element, "@executionId", this.execId.Id); helper.SaveGuid(element, "@testListId", this.categoryId.Id); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameter /// </param> public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence helper = new XmlPersistence(); if (this.executionId != null) { helper.SaveGuid(element, "@executionId", this.executionId.Id); } helper.SaveObject(this.testId, element, null); }
public void SaveObjectShouldReplaceOnlyInvalidCharacter() { XmlPersistence xmlPersistence = new XmlPersistence(); var node = xmlPersistence.CreateRootElement("TestRun"); string strWithInvalidCharForXml = "This string has these \0 \v invalid characters"; xmlPersistence.SaveObject(strWithInvalidCharForXml, node, null, "dummy"); string expectedResult = "This string has these \\u0000 \\u000b invalid characters"; Assert.AreEqual(0, string.Compare(expectedResult, node.InnerXml)); }
/// <summary> /// Saves the class under the XmlElement.. /// </summary> /// <param name="element"> /// The parent xml. /// </param> /// <param name="parameters"> /// The parameters. /// </param> public void Save(System.Xml.XmlElement element, XmlTestStoreParameters parameters) { XmlPersistence helper = new XmlPersistence(); helper.SaveSingleFields(element, this, parameters); helper.SaveObject(this.testId, element, null); helper.SaveGuid(element, "@executionId", this.executionId); if (parentExecutionId != null) { helper.SaveGuid(element, "@parentExecutionId", this.parentExecutionId); } helper.SaveGuid(element, "@testListId", this.categoryId.Id); if (this.TestEntries.Count > 0) { helper.SaveIEnumerable(TestEntries, element, "TestEntries", ".", "TestEntry", parameters); } }
public void SaveObjectShouldReplaceInvalidCharacter() { XmlPersistence xmlPersistence = new XmlPersistence(); var node = xmlPersistence.CreateRootElement("TestRun"); // we are handling only #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] char[] invalidXmlCharacterArray = new char[7]; invalidXmlCharacterArray[0] = (char)0x5; invalidXmlCharacterArray[1] = (char)0xb; invalidXmlCharacterArray[2] = (char)0xf; invalidXmlCharacterArray[3] = (char)0xd800; invalidXmlCharacterArray[4] = (char)0xdc00; invalidXmlCharacterArray[5] = (char)0xfffe; invalidXmlCharacterArray[6] = (char)0x0; string strWithInvalidCharForXml = new string(invalidXmlCharacterArray); xmlPersistence.SaveObject(strWithInvalidCharForXml, node, null, "dummy"); string expectedResult = "\\u0005\\u000b\\u000f\\ud800\\udc00\\ufffe\\u0000"; Assert.AreEqual(0, string.Compare(expectedResult, node.InnerXml)); }
public void SaveObjectShouldNotReplaceValidCharacter() { XmlPersistence xmlPersistence = new XmlPersistence(); var node = xmlPersistence.CreateRootElement("TestRun"); // we are handling only #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] char[] validXmlCharacterArray = new char[8]; validXmlCharacterArray[0] = (char)0x9; validXmlCharacterArray[1] = (char)0xa; validXmlCharacterArray[2] = (char)0xd; validXmlCharacterArray[3] = (char)0x20; validXmlCharacterArray[4] = (char)0xc123; validXmlCharacterArray[5] = (char)0xe000; validXmlCharacterArray[6] = (char)0xea12; validXmlCharacterArray[7] = (char)0xfffd; string strWithValidCharForXml = new string(validXmlCharacterArray); xmlPersistence.SaveObject(strWithValidCharForXml, node, null, "dummy"); string expectedResult = "\t\n\r 섣�"; Assert.AreEqual(0, string.Compare(expectedResult, node.InnerXml)); }
/// <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); }