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); }
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"); } } } }
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); }
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); }
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); }
string IObsoleteAction.TargetActionTypeName() { ActWebAPIRest newActApiRest = new ActWebAPIRest(); return(newActApiRest.ActionDescription); }