public void XmlValidationStepTest() { var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); var data = StreamHelper.LoadFileToStream(@"..\..\TestData\PurchaseOrder001.xml"); validation.Execute(data, ctx); }
public void PickListTest_QuantityMisMatch() { var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Schemas\PickListSchema.xsd", XmlSchemaNameSpace = "http://Timewave.BizTalkUnit.Sample.PickListSchema" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "Quantity"; xpathProductId.XPath = "/*[local-name()='PickList' and namespace-uri()='http://Timewave.BizTalkUnit.Sample.PickListSchema']/*[local-name()='Items' and namespace-uri()='']/*[local-name()='Quantity' and namespace-uri()='']";; xpathProductId.Value = "8"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); string[] filePaths = Directory.GetFiles(@"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Picklist", "*.xml"); var data = StreamHelper.LoadFileToStream(filePaths[0]); try { MSTestExtensions.BaseTest.Assert.Throws <ValidationStepExecutionException>(() => validation.Execute(data, ctx)); } catch (ValidationStepExecutionException vsee) { Assert.AreEqual("Failed to validate document instance", vsee.Message); Assert.AreEqual("The expected value for qauntity is 3", vsee.InnerException.Message); } }
public void XmlValidationStepTest_InvalidXPath() { var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); var data = StreamHelper.LoadFileToStream(@"..\..\TestData\PurchaseOrder002_BadXPath.xml"); try { Assert.Throws <ApplicationException>(() => validation.Execute(data, ctx)); } catch (ApplicationException aex) { Assert.AreEqual( @"XmlValidationStep failed, compare 12323 != BADBAD, xpath query used: /*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']", aex.Message); } }
public void XmlValidationStepTest_SchemaValidationFail() { var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); var data = StreamHelper.LoadFileToStream(@"..\..\TestData\PurchaseOrder003_SchemaValidationFail.xml"); try { Assert.Throws <ValidationStepExecutionException>(() => validation.Execute(data, ctx)); } catch (ValidationStepExecutionException vsee) { Assert.AreEqual("Failed to validate document instance", vsee.Message); Assert.AreEqual( @"The 'http://SendMail.PurchaseOrder:PurchaseOrderBAD' element is not declared.", vsee.InnerException.Message); } }
public void PickListTest_ValidatePickListQuantity() { var validation = new XmlValidationStep(); var schemaPickList = new SchemaDefinition { XmlSchemaPath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Schemas\PickListSchema.xsd", XmlSchemaNameSpace = "http://Timewave.BizTalkUnit.Sample.PickListSchema" }; validation.XmlSchemas.Add(schemaPickList); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "Quantity"; xpathProductId.XPath = "/*[local-name()='PickList' and namespace-uri()='http://Timewave.BizTalkUnit.Sample.PickListSchema']/*[local-name()='Items' and namespace-uri()='']/*[local-name()='Quantity' and namespace-uri()='']";; xpathProductId.Value = "3"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); string[] filePaths = Directory.GetFiles(@"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Picklist", "*.xml"); var data = StreamHelper.LoadFileToStream(filePaths[0]); validation.Execute(data, ctx); }
public void XmlValidationStepTest_SchemaValidationFailMissingElem() { var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\PurchaseOrder.xsd"), XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); var ctx = new Context(); var data = StreamHelper.LoadFileToStream(Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\PurchaseOrder004_SchemaValidationFailMissingElem.xml")); try { Assert.Throws <ValidationStepExecutionException>(() => validation.Execute(data, ctx)); } catch (ValidationStepExecutionException vsee) { Assert.AreEqual("Failed to validate document instance", vsee.Message); Assert.AreEqual( @"The element 'PurchaseOrder' in namespace 'http://SendMail.PurchaseOrder' has invalid child element 'Description'. List of possible elements expected: 'CustomerInfo'.", vsee.InnerException.Message); } }
public void Upgrade_NotElligable_Test() { var testCase = new TestCase(); testCase.Name = "Upgrade_NotElligable_Test"; testCase.Purpose = "Test failed upgrade"; testCase.Description = "Test upgrade denied for passenger/flight not elligable for upgrade"; testCase.Category = "BizUnit SDK: BVT"; testCase.Reference = "Use case: 10.3.5"; testCase.ExpectedResults = "Upgrade failed"; testCase.Preconditions = "Solution should be deployed, bound and started"; var wsStep = new WebServiceStep(); wsStep.Action = "Upgrade"; wsStep.ServiceUrl = "http://localhost/BizUnit.Sdk.FlightUpgrade/BizUnit_Sdk_FlightUpgrade_ProcessRequest_UpgradePort.svc"; wsStep.RequestBody = new FileDataLoader { FilePath = @"..\..\..\Tests\FlightUpgrade.Tests\Data\Request_NotElligible.xml" }; wsStep.RunConcurrently = true; // Add validation.... var validation = new XmlValidationStep(); var schemaResultType = new SchemaDefinition { XmlSchemaPath = @"..\..\..\Src\FlightUpgrade\ResponseMsg.xsd", XmlSchemaNameSpace = "http://bizUnit.sdk.flightUpgrade/upgradeResponse" }; validation.XmlSchemas.Add(schemaResultType); var responseXpath = new XPathDefinition(); responseXpath.Description = "GetProducts_RS/Result/result"; responseXpath.XPath = "/*[local-name()='UpgradeResponse' and namespace-uri()='http://bizUnit.sdk.flightUpgrade/upgradeResponse']/*[local-name()='UpgradeResult' and namespace-uri()='']/*[local-name()='Result' and namespace-uri()='']"; responseXpath.Value = "false"; validation.XPathValidations.Add(responseXpath); wsStep.SubSteps.Add(validation); testCase.ExecutionSteps.Add(wsStep); var bizUnit = new BizUnit(testCase); bizUnit.RunTest(); TestCase.SaveToFile(testCase, "Upgrade_NotElligable_Test.xml"); }
public void MapDocumentInstanceTestAndValidateAndAddValueToCtx() { var mapStep = new ExecuteMapStep { MapAssemblyPath = @"..\..\..\..\Test\BizUnit.BizTalkTestArtifacts\bin\Debug\BizUnit.BizTalkTestArtifacts.dll", Source = @"..\..\..\..\Test\BizUnit.BizTalkTestArtifacts\Instances\Schema1.xml", MapTypeName = "BizUnit.BizTalkTestArtifacts.MapSchema1ToSchema2", Destination = "Schema2.003.xml" }; var validation = new XmlValidationStep(); var sd = new SchemaDefinition { XmlSchemaPath = @"..\..\..\..\Test\BizUnit.BizTalkTestArtifacts\Schema2.xsd", XmlSchemaNameSpace = "http://BizUnit.BizTalkTestArtifacts.Schema2" }; validation.XmlSchemas.Add(sd); var xpd = new XPathDefinition { XPath = "/*[local-name()='Schema2Root' and namespace-uri()='http://BizUnit.BizTalkTestArtifacts.Schema2']/*[local-name()='Child1' and namespace-uri()='']/@*[local-name()='Child1Attribute1' and namespace-uri()='']", Value = "1", ContextKey = "Child1.Child1Attribute1" }; validation.XPathValidations.Add(xpd); // Add validation... mapStep.SubSteps.Add(validation); // Save the test case to ensure seralisation works as expected.... var tc = new TestCase { Name = "MapDocumentInstanceTest" }; tc.ExecutionSteps.Add(mapStep); TestCase.SaveToFile(tc, "MapDocumentInstanceTestAndValidateAndAddValueToCtx.xaml"); // Execute test step only var ctx = new Context(); mapStep.Execute(ctx); Assert.AreEqual("1", ctx.GetValue("Child1.Child1Attribute1")); }
public void CreateFileTest() { var step = new CreateStep { CreationPath = @"..\..\..\..\Test\BizUnit.TestSteps.Tests\TestData\FileCreateStepTest.testdelxml" }; var dl = new FileDataLoader { FilePath = @"..\..\..\..\Test\BizUnit.TestSteps.Tests\TestData\PurchaseOrder001.xml" }; step.DataSource = dl; step.Execute(new Context()); var readStep = new FileReadMultipleStep { DirectoryPath = @"..\..\..\..\Test\BizUnit.TestSteps.Tests\TestData\.", SearchPattern = "*.testdelxml" }; var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\..\..\Test\BizUnit.TestSteps.Tests\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition { Description = "PONumber", XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']", Value = "12323" }; validation.XPathValidations.Add(xpathProductId); readStep.SubSteps.Add(validation); readStep.Execute(new Context()); }
public void CreateFileTest() { var step = new CreateStep(); step.CreationPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\FileCreateStepTest.testdelxml"); var dl = new FileDataLoader(); dl.FilePath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\PurchaseOrder001.xml"); step.DataSource = dl; step.Execute(new Context()); var readStep = new FileReadMultipleStep(); readStep.DirectoryPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\."); readStep.SearchPattern = "*.testdelxml"; var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\TestData\PurchaseOrder.xsd"), XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); readStep.SubSteps.Add(validation); readStep.Execute(new Context()); }
public void MapDocumentInstanceTestAndValidateInvalidDocument() { var mapStep = new ExecuteMapStep(); mapStep.MapAssemblyPath = @"..\..\..\Test\BizUnit.BizTalkTestArtifacts\bin\Debug\BizUnit.BizTalkTestArtifacts.dll"; mapStep.Source = @"..\..\..\Test\BizUnit.BizTalkTestArtifacts\Instances\Schema1.error.xml"; mapStep.MapTypeName = "BizUnit.BizTalkTestArtifacts.MapSchema1ToSchema2"; mapStep.Destination = "Schema2.005.xml"; var validation = new XmlValidationStep(); var sd = new SchemaDefinition(); sd.XmlSchemaPath = @"..\..\..\Test\BizUnit.BizTalkTestArtifacts\Schema2.xsd"; sd.XmlSchemaNameSpace = "http://BizUnit.BizTalkTestArtifacts.Schema2"; validation.XmlSchemas.Add(sd); var xpd = new XPathDefinition(); xpd.XPath = "/*[local-name()='Schema2Root' and namespace-uri()='http://BizUnit.BizTalkTestArtifacts.Schema2']/*[local-name()='Child1' and namespace-uri()='']/@*[local-name()='Child1Attribute1' and namespace-uri()='']"; xpd.Value = "1"; validation.XPathValidations.Add(xpd); // Add validation... mapStep.SubSteps.Add(validation); // Save the test case to ensure seralisation works as expected.... var tc = new TestCase(); tc.Name = "MapDocumentInstanceTest"; tc.ExecutionSteps.Add(mapStep); TestCase.SaveToFile(tc, "MapDocumentInstanceTestAndValidateInvalidDocument.xaml"); // Execute test step only var ctx = new Context(); mapStep.Execute(ctx); }
public void Integration_Test() { #region Variable Intialization var sourceFilePath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\OrderSample.xml"; var targetFilePath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Order\OrderSample.xml"; var DestinationDirSummary = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Summary"; #endregion #region Initial CleanUp Step //Get rid of any files that are already there var deleteStep = new DeleteStep(); deleteStep.FilePathsToDelete.Add(targetFilePath); #endregion #region Create step //Create the test step var createStep = new CreateStep(); createStep.CreationPath = targetFilePath; //Where are we going to create the file var dataLoader = new FileDataLoader(); //Where are we getting the file from? dataLoader.FilePath = sourceFilePath; createStep.DataSource = dataLoader; #endregion #region Execution steps #region File Validation Step //Create a validating read step //We should only have one file in the directory var ValidateFileStep = new FileReadMultipleStep(); ValidateFileStep.DirectoryPath = DestinationDirSummary; ValidateFileStep.SearchPattern = "*.xml"; ValidateFileStep.Timeout = 60000; ValidateFileStep.ExpectedNumberOfFiles = 1; ValidateFileStep.DeleteFiles = true; #endregion #region #SubSteps - Schema and node value Validation Step //Create an XML Validation step //This will check the result against the XSD for the document var summarySchemaValidationStep = new XmlValidationStep(); var schemaSummary = new SchemaDefinition(); schemaSummary.XmlSchemaPath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Schemas\SummarySchema.xsd"; schemaSummary.XmlSchemaNameSpace = "http://Timewave.BizTalkUnit.Sample.DestinationSchema"; summarySchemaValidationStep.XmlSchemas.Add(schemaSummary); //Create an XPath Validation. This will check a value in the output. //The Xpath for the node can be grabbed from the Instance XPath property on the XSD. var xpathProductId = new XPathDefinition(); xpathProductId.Description = "ItemsOrdered"; xpathProductId.XPath = "/*[local-name()='CustomerSummary' and namespace-uri()='http://Timewave.BizTalkUnit.Sample.DestinationSchema']/*[local-name()='ItemsOrdered' and namespace-uri()='']"; xpathProductId.Value = "1"; summarySchemaValidationStep.XPathValidations.Add(xpathProductId); ValidateFileStep.SubSteps.Add(summarySchemaValidationStep); #endregion #endregion #region Test Case Execution var testCase = new TestCase(); testCase.SetupSteps.Add(deleteStep); testCase.ExecutionSteps.Add(createStep); testCase.ExecutionSteps.Add(ValidateFileStep); testCase.CleanupSteps.Add(deleteStep); var testRunner = new TestRunner(testCase); testRunner.Run(); #endregion }
public void Upgrade_Eligible_Test_FILE() { var testCase = new TestCase(); testCase.Name = "Upgrade_Eligible_Test_FILE"; testCase.Purpose = "Test successful upgrade"; testCase.Description = "Test upgrade succeeds for passenger/flight eligible for upgrade"; testCase.Category = "BizUnit SDK: BVT"; testCase.Reference = "Use case: 10.3.4"; testCase.ExpectedResults = "Upgrade succeeds"; testCase.Preconditions = "Solution should be deployed, bound and started"; // First ensure the target directory is empty... var delFiles = new DeleteStep(); delFiles.FilePathsToDelete = new Collection <string> { @"C:\Temp\BizTalk\BizUnitSdkOut\*.xml" }; testCase.SetupSteps.Add(delFiles); // Then execute the main scenario. var testStep = new CreateStep(); // Where are we going to create the file. testStep.CreationPath = @"C:\Temp\BizTalk\BizUnitSdkIn\Request.xml"; var dataLoader = new FileDataLoader(); // Where are we getting the original file from? dataLoader.FilePath = @"..\..\Data\Request.xml"; testStep.DataSource = dataLoader; testCase.ExecutionSteps.Add(testStep); // Add validation.... var validation = new XmlValidationStep(); var schemaResultType = new SchemaDefinition { XmlSchemaPath = @"..\..\..\..\Src\FlightUpgrade\ResponseMsg.xsd", XmlSchemaNameSpace = "http://bizUnit.sdk.flightUpgrade/upgradeResponse" }; validation.XmlSchemas.Add(schemaResultType); var responseXpath = new XPathDefinition(); responseXpath.Description = "GetProducts_RS/Result/result"; responseXpath.XPath = "/*[local-name()='UpgradeResponse' and namespace-uri()='http://bizUnit.sdk.flightUpgrade/upgradeResponse']/*[local-name()='UpgradeResult' and namespace-uri()='']/*[local-name()='Result' and namespace-uri()='']"; responseXpath.Value = "true"; validation.XPathValidations.Add(responseXpath); // Check that an output file has been created. var finalFileReadStep = new FileReadMultipleStep(); finalFileReadStep.DirectoryPath = @"C:\Temp\BizTalk\BizUnitSdkOut"; finalFileReadStep.SearchPattern = "*.xml"; finalFileReadStep.ExpectedNumberOfFiles = 1; finalFileReadStep.Timeout = 5000; finalFileReadStep.DeleteFiles = false; finalFileReadStep.SubSteps.Add(validation); testCase.ExecutionSteps.Add(finalFileReadStep); var bizUnit = new BizUnit(testCase); bizUnit.RunTest(); TestCase.SaveToFile(testCase, System.String.Format("Upgrade_Eligible_Test_File_{0}.xml", System.String.Format("{0:yyyy-MM-dd-hh_mm_ss}", System.DateTime.Now))); }
public void Upgrade_Elligable_Test() { var testCase = new TestCase(); testCase.Name = "Upgrade_Elligable_Test"; testCase.Purpose = "Test successful upgrade"; testCase.Description = "Test upgrade succeeds for passenger/flight not elligable for upgrade"; testCase.Category = "BizUnit SDK: BVT"; testCase.Reference = "Use case: 10.3.4"; testCase.ExpectedResults = "Upgrade succeeds"; testCase.Preconditions = "Solution should be deployed, bound and started"; // First ensure the target directory is empty... var delFiles = new DeleteStep(); delFiles.FilePathsToDelete = new Collection <string> { @"C:\Temp\BizTalk\BizUnitSdkOut\*.xml" }; testCase.SetupSteps.Add(delFiles); // Then execute the main scenario, execute a response-response web set step which is executed concurrently. // i.e. whilst this step is waiting for the response the next step, FileReadMultipleStep and then CreateStep // will be executed. var wsStep = new WebServiceStep(); wsStep.Action = "Upgrade"; wsStep.ServiceUrl = "http://localhost/BizUnit.Sdk.FlightUpgrade/BizUnit_Sdk_FlightUpgrade_ProcessRequest_UpgradePort.svc"; wsStep.RequestBody = new FileDataLoader { FilePath = @"..\..\..\Tests\FlightUpgrade.Tests\Data\Request.xml" }; wsStep.RunConcurrently = true; // Add validation.... var validation = new XmlValidationStep(); var schemaResultType = new SchemaDefinition { XmlSchemaPath = @"..\..\..\Src\FlightUpgrade\ResponseMsg.xsd", XmlSchemaNameSpace = "http://bizUnit.sdk.flightUpgrade/upgradeResponse" }; validation.XmlSchemas.Add(schemaResultType); var responseXpath = new XPathDefinition(); responseXpath.Description = "GetProducts_RS/Result/result"; responseXpath.XPath = "/*[local-name()='UpgradeResponse' and namespace-uri()='http://bizUnit.sdk.flightUpgrade/upgradeResponse']/*[local-name()='UpgradeResult' and namespace-uri()='']/*[local-name()='Result' and namespace-uri()='']"; responseXpath.Value = "true"; validation.XPathValidations.Add(responseXpath); var fileReadStep = new FileReadMultipleStep(); fileReadStep.DirectoryPath = @"C:\Temp\BizTalk\BizUnitSdkOut"; fileReadStep.SearchPattern = "*.xml"; fileReadStep.ExpectedNumberOfFiles = 1; fileReadStep.Timeout = 5000; fileReadStep.DeleteFiles = true; var createFileStep = new CreateStep(); createFileStep.CreationPath = @"..\..\..\Data\In\UpgradeResponse.xml"; createFileStep.DataSource = new FileDataLoader { FilePath = @"..\..\..\Tests\FlightUpgrade.Tests\Data\Response.xml" }; testCase.ExecutionSteps.Add(wsStep); testCase.ExecutionSteps.Add(fileReadStep); testCase.ExecutionSteps.Add(createFileStep); var bizUnit = new BizUnit(testCase); bizUnit.RunTest(); TestCase.SaveToFile(testCase, "Upgrade_Elligable_Test.xml"); }
public void ImportSingleTestCaseTest() { TestHelper.DeleteFile("ImportSingleTestCaseTest.xml"); // Create the first test case i a helper method... var testCase1 = BuildFirstTestCase(); // Create the second test case and import the first test case into it... var testCase2 = new TestCase { Name = "Copy First File Test" }; var createFileStep = new CreateStep { CreationPath = @"File2.xml" }; var dl = new FileDataLoader { FilePath = @"..\..\TestData\PurchaseOrder001.xml" }; createFileStep.DataSource = dl; testCase2.ExecutionSteps.Add(createFileStep); var import = new ImportTestCaseStep { TestCase = testCase1 }; testCase2.ExecutionSteps.Add(import); // Create a validating read step... var validatingFileReadStep = new FileReadMultipleStep { DirectoryPath = @".", SearchPattern = "File*.xml", ExpectedNumberOfFiles = 2 }; var validation = new XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition { Description = "PONumber", XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']", Value = "12323" }; validation.XPathValidations.Add(xpathProductId); validatingFileReadStep.SubSteps.Add(validation); testCase2.ExecutionSteps.Add(validatingFileReadStep); // Run the second test case... var bizUnit = new BizUnit(testCase2); bizUnit.RunTest(); TestCase.SaveToFile(testCase2, "ImportSingleTestCaseTest.xml"); }
public void WebServiceInvoke() { TestCase btc = new TestCase(); btc.Name = "Serialization Test"; btc.Description = "Test to blah blah blah, yeah really!"; btc.BizUnitVersion = "4.0.0.1"; var ws = new WebServiceStep(); ws.Action = "http://schemas.virgin-atlantic.com/AncillarySales/Book/Services/2009/IAncillarySalesBook/GetProductTermsAndConditions"; FileDataLoader dataLoader; dataLoader = new FileDataLoader(); dataLoader.FilePath = @"..\..\..\Test\BizUnit.TestSteps.Tests\TestData\GetProductTermsAndConditions_RQ.xml"; ws.RequestBody = dataLoader; ws.ServiceUrl = "http://localhost/AncillarySalesBook/AncillarySalesBook.svc"; ws.Username = @"newkydog001\kevinsmi"; var header = new SoapHeader(); header.HeaderName = "ServiceCallingContext"; header.HeaderNameSpace = "http://schemas.virgin-atlantic.com/Services/ServiceCallingContext/2009"; var ctx = new ServiceCallingContext(); ctx.ApplicationName = "BVT Tests"; ctx.GUid = "{1705141E-F530-4657-BA2F-23F0F4A8BCB0}"; ctx.RequestId = "{59ACDBB4-3FAF-4056-9459-49D43C4128F9}"; ctx.UserId = "kevin"; ctx.UTCTransactionStartDate = DateTime.UtcNow; ctx.UTCTransactionStartTime = DateTime.UtcNow.ToString("HH:mm:ss.fff"); header.HeaderInstance = ctx; ws.SoapHeaders.Add(header); // Validation.... var validation = new XmlValidationStep(); var schemaResultType = new SchemaDefinition { XmlSchemaPath = @"C:\Affinus\Depot\ASS\Main\Dev\Src\VAA.ASS.Schemas\VAACommon\Result_Type.xsd", XmlSchemaNameSpace = "http://schemas.virgin-atlantic.com/Common/2009" }; validation.XmlSchemas.Add(schemaResultType); var schema = new SchemaDefinition { XmlSchemaPath = @"C:\Affinus\Depot\ASS\Main\Dev\Src\VAA.ASS.Schemas\Book\GetProductTermsAndConditions_RS.xsd", XmlSchemaNameSpace = "http://schemas.virgin-atlantic.com/AncillarySales/Book/Services/GetProductTermsAndConditions/2009" }; validation.XmlSchemas.Add(schema); var xpathProductId = new XPathDefinition(); xpathProductId.XPath = "/*[local-name()='GetProductTermsAndConditions_RS' and namespace-uri()='http://schemas.virgin-atlantic.com/AncillarySales/Book/Services/GetProductTermsAndConditions/2009']/*[local-name()='Message' and namespace-uri()='']/*[local-name()='TermsAndConditions' and namespace-uri()='']/@*[local-name()='productId' and namespace-uri()='']"; xpathProductId.Value = "1"; validation.XPathValidations.Add(xpathProductId); var xpathContent = new XPathDefinition(); xpathContent.XPath = "/*[local-name()='GetProductTermsAndConditions_RS' and namespace-uri()='http://schemas.virgin-atlantic.com/AncillarySales/Book/Services/GetProductTermsAndConditions/2009']/*[local-name()='Message' and namespace-uri()='']/*[local-name()='TermsAndConditions' and namespace-uri()='']/*[local-name()='Content' and namespace-uri()='']"; xpathContent.Value = "Terms and Conditions: this product is non-refundable...."; validation.XPathValidations.Add(xpathContent); ws.SubSteps.Add(validation); btc.ExecutionSteps.Add(ws); BizUnit bu = new BizUnit(btc); TestCase.SaveToFile(btc, "WebServiceInvoke.xaml"); bu.RunTest(); }
public void FileCreateStepTest() { var step = new FileCreateStep(); step.CreationPath = @"..\..\..\Test\BizUnit4Tests\TestData\FileCreateStepTest.testdelxml"; var dl = new FileDataLoader(); dl.FilePath = @"..\..\..\Test\BizUnit4Tests\TestData\PurchaseOrder001.xml"; step.DataSource = dl; step.Execute(new Context()); var readStep = new FileReadMultipleStep(); readStep.DirectoryPath = @"..\..\..\Test\BizUnit4Tests\TestData\."; readStep.SearchPattern = "*.testdelxml"; var validation = new BizUnitCoreTestSteps.XmlValidationStep(); var schemaPurchaseOrder = new SchemaDefinition { XmlSchemaPath = @"..\..\..\Test\BizUnit4Tests\TestData\PurchaseOrder.xsd", XmlSchemaNameSpace = "http://SendMail.PurchaseOrder" }; validation.XmlSchemas.Add(schemaPurchaseOrder); var xpathProductId = new XPathDefinition(); xpathProductId.Description = "PONumber"; xpathProductId.XPath = "/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']"; xpathProductId.Value = "12323"; validation.XPathValidations.Add(xpathProductId); readStep.SubSteps.Add(validation); readStep.Execute(new Context()); }
public void SummaryTest() { //var totalItemsTest = new TestCase { Name = "Total Items is 3" }; var sourceFilePath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\OrderSample.xml"; //var targetDirectory = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Order"; var targetFilePath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Order\OrderSample.xml"; var DestinationDirSummary = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Testing\Summary"; //Get rid of any files that are already there var deleteStep = new DeleteStep(); deleteStep.FilePathsToDelete.Add(targetFilePath); //Create the test step var createStep = new CreateStep(); createStep.CreationPath = targetFilePath; //Where are we going to create the file var dataLoader = new FileDataLoader(); //Where are we getting the file from? dataLoader.FilePath = sourceFilePath; createStep.DataSource = dataLoader; //Create a validating read step //We should only have one file in the directory var ValidateFileStep = new FileReadMultipleStep(); ValidateFileStep.DirectoryPath = DestinationDirSummary; ValidateFileStep.SearchPattern = "*.xml"; ValidateFileStep.Timeout = 3000; ValidateFileStep.ExpectedNumberOfFiles = 1; ValidateFileStep.DeleteFiles = true; //Create an XML Validation step //This will check the result against the XSD for the document var summarySchemaValidationStep = new XmlValidationStep(); var schemaSummary = new SchemaDefinition(); schemaSummary.XmlSchemaPath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Timewave.BizUnit.Sample\Schemas\SummarySchema.xsd"; schemaSummary.XmlSchemaNameSpace = "http://Timewave.BizTalkUnit.Sample.DestinationSchema"; summarySchemaValidationStep.XmlSchemas.Add(schemaSummary); //Create an XPath Validation. This will check a value in the output. //The Xpath for the node can be grabbed from the Instance XPath property on the XSD. var xpathProductId = new XPathDefinition(); xpathProductId.Description = "ItemsOrdered"; xpathProductId.XPath = "/*[local-name()='CustomerSummary' and namespace-uri()='http://Timewave.BizTalkUnit.Sample.DestinationSchema']/*[local-name()='ItemsOrdered' and namespace-uri()='']"; xpathProductId.Value = "2"; summarySchemaValidationStep.XPathValidations.Add(xpathProductId); ValidateFileStep.SubSteps.Add(summarySchemaValidationStep); var testCase = new TestCase(); testCase.SetupSteps.Add(deleteStep); testCase.ExecutionSteps.Add(createStep); testCase.ExecutionSteps.Add(ValidateFileStep); testCase.CleanupSteps.Add(deleteStep); var testRunner = new TestRunner(testCase); try { testRunner.Run(); } catch (Exception ex) { string filePath = @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\TestResult\Error.txt"; using (StreamWriter writer = new StreamWriter(filePath, true)) { writer.WriteLine("-----------------------------------------------------------------------------"); writer.WriteLine("Date : " + DateTime.Now.ToString()); writer.WriteLine(); while (ex != null) { writer.WriteLine(ex.GetType().FullName); writer.WriteLine("Message : " + ex.Message); writer.WriteLine("StackTrace : " + ex.StackTrace); ex = ex.InnerException; } } } finally { TestCase.SaveToFile( testCase, @"C:\Users\amigupta7\Desktop\Amit\Project\POC\Timewave.BizUnit.Sample\TestResult\SampleTest.xaml", true); } }