public void XmlUpdateElementTests_WhenEmptyParametersArePassedInShouldThrowAppropriateException() { var testFileName = TestContext.DataRow["FilePath"].ToString(); var xmlNamespace = TestContext.DataRow["XmlNamespace"].ToString(); var xpathExpression = TestContext.DataRow["XPathExpression"].ToString(); var xmlNamespacePrefix = TestContext.DataRow["XmlNamespacePrefix"].ToString(); var newVersionNumber = TestContext.DataRow["ReplacementValue"].ToString(); var expectedResult = bool.Parse(TestContext.DataRow["ExpectedResult"].ToString()); var expectedException = TestContext.DataRow["ExpectedException"].ToString(); if (testFileName == "FileNotFound") { testFileName = "missingfilename.xml"; } else if (!string.IsNullOrEmpty(testFileName)) { var exeptionTestFile = Path.Combine(TestContext.DeploymentDirectory, "ExceptionTestFile.xml"); if (File.Exists(exeptionTestFile)) { File.Delete(exeptionTestFile); } testFileName = Path.Combine(TestContext.DeploymentDirectory, testFileName); File.Copy(testFileName, exeptionTestFile); //testFileName = exeptionTestFile; } // Create an instance of our test workflow var workflow = new CallXmlUpdateElementWorkflow(); // Create the workflow run-time environment var workflowInvoker = new WorkflowInvoker(workflow); // Set the workflow arguments workflow.FilePath = testFileName; workflow.ReplacementValue = newVersionNumber; workflow.XmlNamespace = xmlNamespace; workflow.XmlNamespacePrefix = xmlNamespacePrefix; workflow.XPathExpression = xpathExpression; try { workflowInvoker.Invoke(); Assert.IsTrue(expectedResult, "Should have failed"); } catch (Exception exception) { var exceptionName = exception.GetType().ToString(); Assert.IsTrue(exceptionName.EndsWith("." + expectedException), "Should have thrown an exception"); Assert.IsFalse(expectedResult, "Should have succeeded but an exception was thrown: " + exception.Message); } }
public void XmlUpdateElementTests_WhenEmptyParametersArePassedInShouldThrowAppropriateException() { var testFileName = TestContext.DataRow["FilePath"].ToString(); var xmlNamespace = TestContext.DataRow["XmlNamespace"].ToString(); var xpathExpression = TestContext.DataRow["XPathExpression"].ToString(); var xmlNamespacePrefix = TestContext.DataRow["XmlNamespacePrefix"].ToString(); var newVersionNumber = TestContext.DataRow["ReplacementValue"].ToString(); var expectedResult = bool.Parse(TestContext.DataRow["ExpectedResult"].ToString()); var expectedException = TestContext.DataRow["ExpectedException"].ToString(); if (testFileName == "FileNotFound") { testFileName = "missingfilename.xml"; } else if (!string.IsNullOrEmpty(testFileName)) { var exeptionTestFile = Path.Combine(TestContext.DeploymentDirectory, "ExceptionTestFile.xml"); if (File.Exists(exeptionTestFile)) { File.Delete(exeptionTestFile); } testFileName = Path.Combine(TestContext.DeploymentDirectory, testFileName); File.Copy(testFileName, exeptionTestFile); //testFileName = exeptionTestFile; } // Create an instance of our test workflow var workflow = new CallXmlUpdateElementWorkflow(); // Create the workflow run-time environment var workflowInvoker = new WorkflowInvoker(workflow); // Set the workflow arguments workflow.FilePath = testFileName; workflow.ReplacementValue = newVersionNumber; workflow.XmlNamespace = xmlNamespace; workflow.XmlNamespacePrefix = xmlNamespacePrefix; workflow.XPathExpression = xpathExpression; try { workflowInvoker.Invoke(); Assert.IsTrue(expectedResult, "Should have failed"); } catch (Exception exception) { var exceptionName = exception.GetType().ToString(); Assert.IsTrue(exceptionName.EndsWith("." + expectedException), "Should have thrown an exception"); Assert.IsFalse(expectedResult, "Should have succeeded but an exception was thrown: " + exception.Message); } }
public void XmlUpdateElementTests_WhenValuesAreValidUsingWorkflowShouldReplaceXmlValueProperly() { const string testFileName = "TestLib02.nuspec"; const string xmlNamespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"; const string xpathExpression = "ns:package/ns:metadata/ns:version"; const string xmlNamespacePrefix = "ns"; const string newVersionNumber = "9.8.7.6"; File.Copy("TestLib.nuspec", testFileName); // Create an instance of our test workflow var workflow = new CallXmlUpdateElementWorkflow(); // Create the workflow run-time environment var workflowInvoker = new WorkflowInvoker(workflow); // Set the workflow arguments workflow.FilePath = testFileName; workflow.ReplacementValue = newVersionNumber; workflow.XmlNamespace = xmlNamespace; workflow.XmlNamespacePrefix = xmlNamespacePrefix; workflow.XPathExpression = xpathExpression; // Invoke the workflow workflowInvoker.Invoke(); // Create an XML document var document = new XmlDocument(); // Load the document document.Load(testFileName); var xmlnsManager = new XmlNamespaceManager(document.NameTable); xmlnsManager.AddNamespace(xmlNamespacePrefix, xmlNamespace); // Do the search var elementToChange = document.SelectSingleNode(xpathExpression, xmlnsManager); Assert.IsNotNull(elementToChange); Assert.AreEqual(newVersionNumber, elementToChange.InnerText); }
public void XmlUpdateElementTests_WhenValuesAreValidUsingWorkflowShouldReplaceXmlValueProperly() { const string testFileName = "TestLib02.nuspec"; const string xmlNamespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"; const string xpathExpression = "ns:package/ns:metadata/ns:version"; const string xmlNamespacePrefix = "ns"; const string newVersionNumber = "9.8.7.6"; File.Copy("TestLib.nuspec", testFileName); // Create an instance of our test workflow var workflow = new CallXmlUpdateElementWorkflow(); // Create the workflow run-time environment var workflowInvoker = new WorkflowInvoker(workflow); // Set the workflow arguments workflow.FilePath = testFileName; workflow.ReplacementValue = newVersionNumber; workflow.XmlNamespace = xmlNamespace; workflow.XmlNamespacePrefix = xmlNamespacePrefix; workflow.XPathExpression = xpathExpression; // Invoke the workflow workflowInvoker.Invoke(); // Create an XML document var document = new XmlDocument(); // Load the document document.Load(testFileName); var xmlnsManager = new XmlNamespaceManager(document.NameTable); xmlnsManager.AddNamespace(xmlNamespacePrefix, xmlNamespace); // Do the search var elementToChange = document.SelectSingleNode(xpathExpression, xmlnsManager); Assert.IsNotNull(elementToChange); Assert.AreEqual(newVersionNumber, elementToChange.InnerText); }