Beispiel #1
0
        private ActWebAPIRest CreateActWebAPIREST(ApplicationAPIModel AAMB, ActWebAPIModel ActWebAPIModel)
        {
            ActWebAPIRest actWebAPIBase = new ActWebAPIRest();

            FillAPIBaseFields(AAMB, actWebAPIBase, ActWebAPIModel);
            return(actWebAPIBase);
        }
        private static void GetActivityWithActWebApiActions()
        {
            Activity activity = new Activity();

            activity.Active = true;
            activity.SelectedForConversion = true;
            activity.TargetApplication     = webService;
            ActWebAPIRest actRest = new ActWebAPIRest();

            actRest.Active      = true;
            actRest.Description = "WebAPI REST Action-XMLBody";

            SetRestActionInputValues(actRest, nameof(ActWebAPIBase.Fields.RequestBody), GetXMLBody());
            SetRestActionInputValues(actRest, nameof(ActWebAPIBase.Fields.EndPointURL), "https://jsonplaceholder.typicode.com/posts/1");

            activity.Acts.Add(actRest);

            ActWebAPISoap actSoapJson = new ActWebAPISoap();

            actSoapJson.Active      = true;
            actSoapJson.Description = "WebAPI Soap Action-JsonBody";

            SetRestActionInputValues(actSoapJson, nameof(ActWebAPIBase.Fields.RequestBody), GetJsonBody());
            SetRestActionInputValues(actSoapJson, nameof(ActWebAPIBase.Fields.EndPointURL), "http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx");

            activity.Acts.Add(actSoapJson);

            mBF.AddActivity(activity);
            mListBF.Add(mBF);
        }
Beispiel #3
0
        public void WebServices_WebAPIRest()
        {
            WebServicesDriver mDriver = new WebServicesDriver(mBF);

            Agent           wsAgent         = new Agent();
            AgentOperations agentOperations = new AgentOperations(wsAgent);

            wsAgent.AgentOperations = agentOperations;

            wsAgent.DriverType = Agent.eDriverType.WebServices;
            ((AgentOperations)wsAgent.AgentOperations).Driver = mDriver;
            ApplicationAgent mAG = new ApplicationAgent();

            mAG.Agent = wsAgent;

            mGR          = new GingerRunner();
            mGR.Executor = new GingerExecutionEngine(mGR);

            ((GingerExecutionEngine)mGR.Executor).SolutionAgents = new ObservableList <Agent>();
            ((GingerExecutionEngine)mGR.Executor).SolutionAgents.Add(wsAgent);

            mGR.Executor.BusinessFlows.Add(mBF);

            Activity Activity2 = new Activity();

            Activity2.Active       = true;
            Activity2.ActivityName = "Web API REST";
            Activity2.CurrentAgent = wsAgent;
            mBF.Activities.Add(Activity2);

            ActWebAPIRest restAct = new ActWebAPIRest();

            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.EndPointURL, "https://jsonplaceholder.typicode.com/posts/1");
            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.RequestType, ApplicationAPIUtils.eRequestType.GET.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ContentType, ApplicationAPIUtils.eContentType.JSon.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ResponseContentType, ApplicationAPIUtils.eContentType.JSon.ToString());

            restAct.Active = true;
            restAct.EnableRetryMechanism = false;
            restAct.ItemName             = "Web API REST";

            mBF.Activities[0].Acts.Add(restAct);

            mDriver.StartDriver();
            mGR.Executor.RunRunner();


            if (restAct.ReturnValues.Count > 0)
            {
                foreach (ActReturnValue val in restAct.ReturnValues)
                {
                    if (val.Actual.ToString() == "OK")
                    {
                        Assert.AreEqual(val.Actual, "OK");
                    }
                }
            }
        }
Beispiel #4
0
        public void SimulatedOutputWithVETest()
        {
            Activity Activity2 = new Activity();

            Activity2.Active       = true;
            Activity2.ActivityName = "Web API REST with VE";
            Activity2.CurrentAgent = wsAgent;
            mBF.Activities.Add(Activity2);

            ActWebAPIRest restAct = new ActWebAPIRest();

            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.EndPointURL, "https://jsonplaceholder.typicode.com/posts/1");
            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.RequestType, ApplicationAPIUtils.eRequestType.GET.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ContentType, ApplicationAPIUtils.eContentType.JSon.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ResponseContentType, ApplicationAPIUtils.eContentType.JSon.ToString());

            restAct.Active = true;
            restAct.EnableRetryMechanism = false;
            restAct.ItemName             = "Web API REST Simulated Output VE";
            restAct.SupportSimulation    = true;

            ActReturnValue simulateOutput = new ActReturnValue();

            simulateOutput.Active = true;
            simulateOutput.Param  = "TestSimulation";
            ValueExpression testVE = new ValueExpression(null, mBF);

            testVE.Value = "simulated VE";
            simulateOutput.SimulatedActual = testVE.Value;

            mBF.Activities[0].Acts.Add(restAct);


            mDriver.StartDriver();
            mGR.RunRunner();


            if (restAct.ReturnValues.Count > 0)
            {
                foreach (ActReturnValue val in restAct.ReturnValues)
                {
                    if ((val.SimulatedActual != null) && (val.Actual != val.SimulatedActual))
                    {
                        if (val.Actual.ToString() == "simulated VE")
                        {
                            Assert.AreEqual(val.Actual, "simulated VE");
                        }
                    }
                    if ((val.SimulatedActual != null) && (val.Actual == val.SimulatedActual))
                    {
                        Assert.Fail();
                    }
                }
            }
        }
        private List <KeyValuePair <string, string> > ConstructURLEncoded(ActWebAPIRest act)
        {
            List <KeyValuePair <string, string> > KeyValues = new List <KeyValuePair <string, string> >();

            for (int i = 0; i < mAct.RequestKeyValues.Count(); i++)
            {
                KeyValues.Add(new KeyValuePair <string, string>(mAct.RequestKeyValues[i].ItemName.ToString(), mAct.RequestKeyValues[i].ValueForDriver));
            }

            return(KeyValues);
        }
Beispiel #6
0
        Act IObsoleteAction.GetNewAction()
        {
            AutoMapper.MapperConfiguration mapConfigUIElement = new AutoMapper.MapperConfiguration(cfg => { cfg.CreateMap <Act, ActWebAPIRest>(); });
            ActWebAPIRest convertedActWebAPIRest = mapConfigUIElement.CreateMapper().Map <Act, ActWebAPIRest>(this);

            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.DoNotFailActionOnBadRespose, Convert.ToString(this.DoNotFailActionOnBadRespose));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.UseLegacyJSONParsing, Convert.ToString(this.UseLegacyJSONParsing));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLDomain, this.URLDomain.Value);
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLUser, this.URLUser.Value);
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLPass, this.URLPass.Value);
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.SecurityType, Convert.ToString(this.SecurityType));

            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.RequestType, Convert.ToString(this.RequestType));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ResponseContentType, Convert.ToString(this.ResponseContentType));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.CookieMode, Convert.ToString(this.CookieMode));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ContentType, Convert.ToString(this.ContentType));
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ReqHttpVersion, Convert.ToString(this.ReqHttpVersion));

            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.AuthorizationType, ApplicationAPIUtils.eAuthType.NoAuthentication.ToString());

            if (this.UseTemplateFile)
            {
                //Note:Don't confuse with field names. Use Template file is binded to Free text radio button in old Rest Action.
                convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.RequestBodyTypeRadioButton, ApplicationAPIUtils.eRequestBodyType.FreeText.ToString());
                convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.RequestBody, this.RequestBody.Value);
            }
            else if (this.UseRequestBody)
            {
                convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.RequestBodyTypeRadioButton, ApplicationAPIUtils.eRequestBodyType.TemplateFile.ToString());
                convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.TemplateFileNameFileBrowser, this.TemplateFile.Value);
            }
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            convertedActWebAPIRest.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.NetworkCredentialsRadioButton, ApplicationAPIUtils.eNetworkCredentials.Default.ToString());

            convertedActWebAPIRest.DynamicElements = this.DynamicElements;
            convertedActWebAPIRest.HttpHeaders     = this.HttpHeaders;

            if (convertedActWebAPIRest.ReturnValues != null && convertedActWebAPIRest.ReturnValues.Count != 0)
            {
                //Old rest action add response as --> Respose
                //And new adds it as Response:
                // so we update it when converting from old action to new
                ActReturnValue ARC = convertedActWebAPIRest.ReturnValues.Where(x => x.Param == "Respose").FirstOrDefault();
                if (ARC != null)
                {
                    ARC.Param = "Response:";
                }
            }
            return(convertedActWebAPIRest);
        }
        private static void GetActivityWithActionsWithSameParametersDiffernetOptionalValues(bool onlyOneAction)
        {
            Activity activity = new Activity();

            activity.Active = true;
            activity.SelectedForConversion = true;
            activity.TargetApplication     = webService;
            ActWebAPIRest actRest = new ActWebAPIRest();

            actRest.Active      = true;
            actRest.Description = "WebAPI REST Action-XMLBody";

            SetRestActionInputValues(actRest, nameof(ActWebAPIBase.Fields.RequestBody), GetXMLBody());
            SetRestActionInputValues(actRest, nameof(ActWebAPIBase.Fields.EndPointURL), "https://jsonplaceholder.typicode.com/posts/1");

            ObservableList <ActReturnValue> retVal = new ObservableList <ActReturnValue>();

            retVal.Add(new ActReturnValue()
            {
                Param = "RetCode_1st", Expected = "Ok", StoreToValue = ActReturnValue.eStoreTo.ApplicationModelParameter.ToString()
            });
            retVal.Add(new ActReturnValue()
            {
                Param = "RetCode_2nd", Expected = null, StoreToValue = ActReturnValue.eStoreTo.ApplicationModelParameter.ToString()
            });
            retVal.Add(new ActReturnValue()
            {
                Param = "RetCode_3rd", Expected = "Ok", StoreToValue = ActReturnValue.eStoreTo.DataSource.ToString()
            });
            actRest.ReturnValues = retVal;

            activity.Acts.Add(actRest);

            if (!onlyOneAction)
            {
                ActWebAPIRest actRestDiff = new ActWebAPIRest();
                actRestDiff.Active      = true;
                actRestDiff.Description = "WebAPI REST Action-XMLBody 2";

                SetRestActionInputValues(actRestDiff, nameof(ActWebAPIBase.Fields.RequestBody), GetXMLBodyDifferentOptionalValues());
                SetRestActionInputValues(actRestDiff, nameof(ActWebAPIBase.Fields.EndPointURL), "https://jsonplaceholder.typicode.com/posts/1");

                activity.Acts.Add(actRestDiff);
            }

            mBF.AddActivity(activity);
            mListBF.Add(mBF);
        }
        private bool RequestConstractorREST(ActWebAPIRest act)
        {
            //Request Method:
            HttpMethod RequestMethod = new HttpMethod(mAct.GetInputParamCalculatedValue(ActWebAPIRest.Fields.RequestType).ToUpper());

            RequestMessage = new HttpRequestMessage(RequestMethod, Client.BaseAddress);
            //HTTP Version:
            SetHTTPVersion();
            //Request Content Type:
            SetContentType();
            //Cookie Settings:
            SetCookies();
            //Request Body:
            SetRequestContent(RequestMethod);
            return(true);
        }
Beispiel #9
0
        public void SimulatedOutputTest()
        {
            Activity Activity3 = new Activity();

            Activity3.Active       = true;
            Activity3.ActivityName = "Web API REST Simulated Output";
            Activity3.CurrentAgent = wsAgent;
            mBF.Activities.Add(Activity3);


            ActWebAPIRest restAct = new ActWebAPIRest();

            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.EndPointURL, "https://jsonplaceholder.typicode.com/posts/1");
            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.RequestType, ApplicationAPIUtils.eRequestType.GET.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ContentType, ApplicationAPIUtils.eContentType.JSon.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ResponseContentType, ApplicationAPIUtils.eContentType.JSon.ToString());

            restAct.Active = true;
            restAct.EnableRetryMechanism = false;
            restAct.ItemName             = "Web API REST Simulated Output";
            restAct.SupportSimulation    = true;

            //Define dummy return value
            ActReturnValue simulateOutput = new ActReturnValue();

            simulateOutput.Active          = true;
            simulateOutput.Param           = "TestSimulation";
            simulateOutput.SimulatedActual = "simulated ok";
            simulateOutput.Expected        = "simulated ok";

            restAct.ReturnValues.Add(simulateOutput);

            mBF.Activities[0].Acts.Add(restAct);
            mGR.RunInSimulationMode = true;


            mGR.RunRunner();

            if (restAct.ReturnValues[0].SimulatedActual == restAct.ReturnValues[0].Actual)
            {
                Assert.AreEqual(restAct.ReturnValues[0].Actual, restAct.ReturnValues[0].ExpectedCalculated);
            }
        }
        public void ErrorHandlerActivityShouldExecuteWhenAnyActivitiesFail()
        {
            CreateActivityListForBusinessFlow();

            Activity Activity5 = new Activity();

            Activity5.ActivityName = "Activity5";
            Activity5.Active       = true;

            ActWebAPIRest restAct = new ActWebAPIRest();

            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.EndPointURL, "https://jsonplaceholder.typicode.com/posts/100");
            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.RequestType, ApplicationAPIUtils.eRequestType.POST.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ContentType, ApplicationAPIUtils.eContentType.JSon.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ResponseContentType, ApplicationAPIUtils.eContentType.JSon.ToString());

            restAct.Active = true;
            restAct.EnableRetryMechanism = false;
            restAct.ItemName             = "Web API REST";
            Activity5.Acts.Add(restAct);

            Activity5.ErrorHandlerMappingType = eHandlerMappingType.AllAvailableHandlers;
            mBF.AddActivity(Activity5, null, 3);

            Context context1 = new Context();

            context1.BusinessFlow = mBF;
            context1.Activity     = mBF.Activities[0];

            mGR.Executor.CurrentBusinessFlow = mBF;
            mGR.Executor.CurrentBusinessFlow.CurrentActivity = mBF.Activities[0];
            mGR.Executor.Context = context1;

            //Act
            mGR.Executor.RunBusinessFlow(mBF);

            Assert.AreEqual(eRunStatus.Failed, mBF.RunStatus, "Business Flow Failed");
            Assert.AreEqual(eRunStatus.Passed, mBF.Activities[0].Status, "Activity 1 Status");
            Assert.AreEqual(eRunStatus.Passed, mBF.Activities[1].Status, "Activity 2 Status");
            Assert.AreEqual(eRunStatus.Passed, mBF.Activities[2].Status, "Activity 3 Status");
            Assert.AreEqual(eRunStatus.Failed, mBF.Activities[3].Status, "Activity5 Status");
            Assert.AreEqual(eRunStatus.Passed, mBF.Activities[4].Status);
        }
        private Activity GetActivityWithFailedActionScenario()
        {
            Activity Activity5 = new Activity();

            Activity5.ActivityName = "Activity5";
            Activity5.Active       = true;

            ActWebAPIRest restAct = new ActWebAPIRest();

            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.EndPointURL, "https://jsonplaceholder.typicode.com/posts/100");
            restAct.AddOrUpdateInputParamValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, ApplicationAPIUtils.eCretificateType.AllSSL.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.RequestType, ApplicationAPIUtils.eRequestType.POST.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ContentType, ApplicationAPIUtils.eContentType.JSon.ToString());
            restAct.AddOrUpdateInputParamValue(ActWebAPIRest.Fields.ResponseContentType, ApplicationAPIUtils.eContentType.JSon.ToString());

            restAct.Active = true;
            restAct.EnableRetryMechanism = false;
            restAct.ItemName             = "Web API REST";
            Activity5.Acts.Add(restAct);

            Activity5.ErrorHandlerMappingType = eHandlerMappingType.AllAvailableHandlers;

            return(Activity5);
        }
Beispiel #12
0
        string IObsoleteAction.TargetActionTypeName()
        {
            ActWebAPIRest newActApiRest = new ActWebAPIRest();

            return(newActApiRest.ActionDescription);
        }