public void LegacyWebServiceToNewWebApiSoap_Converter_Test() { Activity oldActivity = new Activity(); oldActivity.Active = true; oldActivity.ActivityName = "Legacy Web Service activity"; oldActivity.CurrentAgent = wsAgent; mBF.Activities.Add(oldActivity); ActWebService actLegacyWebService = new ActWebService(); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.URL, @"http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.SOAPAction, @"http://ws.cdyne.com/GetQuickQuote"); var xmlFileNamePath = TestResources.GetTestResourcesFile(@"XML\stock.xml"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.XMLfileName, xmlFileNamePath); actLegacyWebService.FileName = "Web Service Action"; actLegacyWebService.FilePath = "Web Service Action"; actLegacyWebService.Active = true; actLegacyWebService.AddNewReturnParams = true; mBF.Activities[0].Acts.Add(actLegacyWebService); mDriver.StartDriver(); mGR.RunRunner(); Assert.AreNotEqual(0, actLegacyWebService.ReturnValues.Count); Assert.AreEqual(0, Convert.ToInt32(actLegacyWebService.ReturnValues.FirstOrDefault(x => x.Param == @"GetQuickQuoteResult").Actual)); //Convert the legacy action Activity newActivity = new Activity() { Active = true }; newActivity.ActivityName = "New - " + oldActivity.ActivityName; newActivity.CurrentAgent = wsAgent; mBF.Activities.Add(newActivity); Act newAction = ((IObsoleteAction)actLegacyWebService).GetNewAction(); newAction.AddNewReturnParams = true; newAction.Active = true; newAction.ItemName = "Converted webapisoap action"; newActivity.Acts.Add((ActWebAPISoap)newAction); mBF.Activities[1].Acts.Add(newAction); //Assert converted action Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual(0, Convert.ToInt32(newAction.ReturnValues.FirstOrDefault(x => x.Param == @"GetQuickQuoteResult").Actual)); //Run newAction mGR.RunRunner(); //assert newaction Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual(0, Convert.ToInt32(newAction.ReturnValues.FirstOrDefault(x => x.Param == @"GetQuickQuoteResult").Actual)); }
public void LegacyWebServiceToNewWebApiSoap_Converter_Test() { Activity oldActivity = new Activity(); oldActivity.Active = true; oldActivity.ActivityName = "Legacy Web Service activity"; oldActivity.CurrentAgent = wsAgent; mBF.Activities.Add(oldActivity); ActWebService actLegacyWebService = new ActWebService(); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.URL, @"http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.SOAPAction, @""); var xmlFileNamePath = TestResources.GetTestResourcesFile(@"XML\stock.xml"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.XMLfileName, xmlFileNamePath); actLegacyWebService.FileName = "Web Service Action"; actLegacyWebService.FilePath = "Web Service Action"; actLegacyWebService.Active = true; actLegacyWebService.AddNewReturnParams = true; mBF.Activities[0].Acts.Add(actLegacyWebService); mDriver.StartDriver(); mGR.RunRunner(); Assert.AreNotEqual(0, actLegacyWebService.ReturnValues.Count); Assert.AreEqual("ten thousand", actLegacyWebService.ReturnValues.FirstOrDefault(x => x.Param == @"m:NumberToWordsResult").Actual); //Convert the legacy action Activity newActivity = new Activity() { Active = true }; newActivity.ActivityName = "New - " + oldActivity.ActivityName; newActivity.CurrentAgent = wsAgent; mBF.Activities.Add(newActivity); Act newAction = ((IObsoleteAction)actLegacyWebService).GetNewAction(); newAction.AddNewReturnParams = true; newAction.Active = true; newAction.ItemName = "Converted webapisoap action"; newActivity.Acts.Add((ActWebAPISoap)newAction); mBF.Activities[1].Acts.Add(newAction); //Assert converted action Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual("ten thousand", newAction.ReturnValues.FirstOrDefault(x => x.Param == @"m:NumberToWordsResult").Actual); //Run newAction mGR.RunRunner(); //assert newaction Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual("ten thousand", newAction.ReturnValues.FirstOrDefault(x => x.Param == @"m:NumberToWordsResult").Actual); }
public void LegacyWebServiceToNewWebApiSoap_Converter_Test() { Activity oldActivity = new Activity(); oldActivity.Active = true; oldActivity.ActivityName = "Legacy Web Service activity"; oldActivity.CurrentAgent = wsAgent; mBF.Activities.Add(oldActivity); ActWebService actLegacyWebService = new ActWebService(); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.URL, @"http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.SOAPAction, @""); var xmlFileNamePath = TestResources.GetTestResourcesFile(@"XML" + Path.DirectorySeparatorChar + "stock.xml"); actLegacyWebService.AddOrUpdateInputParamValue(ActWebService.Fields.XMLfileName, xmlFileNamePath); actLegacyWebService.FileName = "Web Service Action"; actLegacyWebService.FilePath = "Web Service Action"; actLegacyWebService.Active = true; actLegacyWebService.AddNewReturnParams = true; mBF.Activities[0].Acts.Add(actLegacyWebService); mDriver.StartDriver(); mGR.Executor.RunRunner(); Assert.AreNotEqual(0, actLegacyWebService.ReturnValues.Count); Assert.AreEqual("Åland Islands", actLegacyWebService.ReturnValues.FirstOrDefault(x => x.Param == @"m:sName").Actual); //Convert the legacy action Activity newActivity = new Activity() { Active = true }; newActivity.ActivityName = "New - " + oldActivity.ActivityName; newActivity.CurrentAgent = wsAgent; mBF.Activities.Add(newActivity); Act newAction = ((IObsoleteAction)actLegacyWebService).GetNewAction(); newAction.AddNewReturnParams = true; newAction.Active = true; newAction.ItemName = "Converted webapisoap action"; newActivity.Acts.Add((ActWebAPISoap)newAction); mBF.Activities[1].Acts.Add(newAction); //Assert converted action Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual("Åland Islands", newAction.ReturnValues.FirstOrDefault(x => x.Param == @"m:sName").Actual); //Run newAction mGR.Executor.RunRunner(); //assert newaction Assert.AreNotEqual(0, newAction.ReturnValues.Count); Assert.AreEqual("Åland Islands", newAction.ReturnValues.FirstOrDefault(x => x.Param == @"m:sName").Actual); }
public ActWebServiceEditPage(ActWebService act) { InitializeComponent(); mAct = act; Bind(); if (mAct.URLUser.Value != "" && mAct.URLUser.Value != null) { CustomNetworkCreds.IsChecked = true; } }
private string SetDynamicValues(ActWebService AWS, string XML) { string NewXML = XML; foreach (ActInputValue AIV in AWS.DynamicXMLElements) { // We start with simple place holder replace // Later on we will add locate by: XPath and more //todo set VFD!? or is it already done!! string NewValue = AIV.ValueForDriver; //TODO: handle if not found what to replace NewXML = NewXML.Replace(AIV.Param, NewValue); } return(NewXML); }
public override void RunAction(Act act) { //TODO: add func to Act + Enum for switch if (act is ActWebService) { mActWebService = (ActWebService)act; string ReqXML = String.Empty; FileStream ReqXMLStream = System.IO.File.OpenRead(mActWebService.XMLfileName.ValueForDriver.Replace(@"~\", mActWebService.SolutionFolder)); using (StreamReader reader = new StreamReader(ReqXMLStream)) { ReqXML = reader.ReadToEnd(); } string XMLwithValues = SetDynamicValues(mActWebService, ReqXML); int timeOut = string.IsNullOrEmpty(Convert.ToString(act.Timeout)) ? 350 : ((int)act.Timeout) * 1000; RunWebService(XMLwithValues, timeOut); } else if (act is ActSoapUI) { if (string.IsNullOrEmpty(SoapUIDirectoryPath)) { throw new Exception("SoapUI Directory Path has not been set to the Agent"); } runSoapCommand(act); } else if (act is ActWebAPISoap || act is ActWebAPIRest) { mActWebAPI = (ActWebAPIBase)act; HandleWebApiRequest((ActWebAPIBase)act); } else if (act is ActWebAPIModel) { if (Reporter.CurrentAppLogLevel == eAppReporterLoggingLevel.Debug) { Reporter.ToLog(eLogLevel.INFO, "Start Execution"); } //pull pointed API Model ApplicationAPIModel AAMB = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <ApplicationAPIModel>().Where(x => x.Guid == ((ActWebAPIModel)act).APImodelGUID).FirstOrDefault(); if (AAMB == null) { act.Error = "Failed to find the pointed API Model"; act.ExInfo = string.Format("API Model with the GUID '{0}' was not found", ((ActWebAPIModel)act).APImodelGUID); return; } //init matching real WebAPI Action ActWebAPIBase actWebAPI = null; if (AAMB.APIType == ApplicationAPIUtils.eWebApiType.REST) { actWebAPI = CreateActWebAPIREST((ApplicationAPIModel)AAMB, (ActWebAPIModel)act); } else if (AAMB.APIType == ApplicationAPIUtils.eWebApiType.SOAP) { actWebAPI = CreateActWebAPISOAP((ApplicationAPIModel)AAMB, (ActWebAPIModel)act); } if (Reporter.CurrentAppLogLevel == eAppReporterLoggingLevel.Debug) { Reporter.ToLog(eLogLevel.INFO, "ActWebAPIBase created successfully"); } //Execution mActWebAPI = actWebAPI; HandleWebApiRequest(actWebAPI); //Post Execution Copy execution result fields from actWebAPI to ActWebAPIModel (act) CopyExecutionAttributes(act, actWebAPI); } else if (act is ActScreenShot) { } else { throw new Exception("The Action from type '" + act.GetType().ToString() + "' is unknown/Not Implemented by the Driver - " + this.GetType().ToString()); } }