コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public ActWebServiceEditPage(ActWebService act)
 {
     InitializeComponent();
     mAct = act;
     Bind();
     if (mAct.URLUser.Value != "" && mAct.URLUser.Value != null)
     {
         CustomNetworkCreds.IsChecked = true;
     }
 }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
            }
        }