public void PluginRuntimeHandler_Test_WhenValid_ExpectRunsCorrectly() { //------------Setup for test-------------------------- var type = typeof(Human); var svc = CreatePluginService(new List <IDev2MethodInfo> { new Dev2MethodInfo { Method = "EmptyIsNullTest", Parameters = new List <IMethodParameter>() } }, type, new ServiceConstructor()); //------------Execute Test--------------------------- var isolated = new PluginRuntimeHandler(); var pluginInvokeArgs = new PluginInvokeArgs { MethodsToRun = svc.MethodsToRun, PluginConstructor = new PluginConstructor { ConstructorName = svc.Constructor.Name, Inputs = new List <IConstructorParameter>(), }, AssemblyLocation = type.Assembly.Location, AssemblyName = type.Assembly.FullName, Fullname = type.FullName, Parameters = new List <MethodParameter>() { new MethodParameter() { Name = "value", TypeName = typeof(string).FullName, Value = "a" } }, Method = "EmptyIsNullTest" }; var instance = isolated.Test(pluginInvokeArgs, out string jresult); Assert.IsTrue(!string.IsNullOrEmpty(jresult)); var count = instance.DataSourceShapes.Count; Assert.AreEqual(1, count); }
protected override object ExecuteService(out ErrorResultTO errors, IOutputFormatter formater = null) { errors = new ErrorResultTO(); var args = new PluginInvokeArgs { AssemblyLocation = Source.AssemblyLocation, AssemblyName = Source.AssemblyName, Fullname = Service.Namespace, Method = Service.Method.Name, Parameters = Service.Method.Parameters, OutputFormatter = formater }; object result = null; try { result = PluginServiceExecutionFactory.InvokePlugin(args); } catch (Exception e) { errors.AddError(e.Message); } return(result); }
public void PluginRuntimeHandler_InvokePlugin_WhenValidDll_ExpectValidResults() { //------------Setup for test-------------------------- var source = CreatePluginSource(); var svc = CreatePluginService(); PluginInvokeArgs args = new PluginInvokeArgs { AssemblyLocation = source.AssemblyLocation, AssemblyName = "Foo", Fullname = svc.Namespace, Method = svc.Method.Name, Parameters = svc.Method.Parameters }; //------------Execute Test--------------------------- var result = PluginServiceExecutionFactory.InvokePlugin(args); var castResult = result as DummyClassForPluginTest; //------------Assert Results------------------------- if (castResult != null) { StringAssert.Contains(castResult.Name, "test data"); } else { Assert.Fail("Failed Conversion for Assert"); } }
public void PluginRuntimeHandler_InvokePlugin_WhenValidDll_ExpectValidResults() { //------------Setup for test-------------------------- var source = CreatePluginSource(); var svc = CreatePluginService(); //------------Execute Test--------------------------- using (Isolated <PluginRuntimeHandler> isolated = new Isolated <PluginRuntimeHandler>()) { PluginInvokeArgs args = new PluginInvokeArgs { AssemblyLocation = source.AssemblyLocation , AssemblyName = "Foo" , Fullname = svc.Namespace , Method = svc.Method.Name , Parameters = svc.Method.Parameters }; var result = PluginServiceExecutionFactory.InvokePlugin(args); var castResult = JsonConvert.DeserializeObject(result.ToString()) as dynamic; //------------Assert Results------------------------- if (castResult != null) { StringAssert.Contains(castResult.Name.ToString(), "test data"); } else { Assert.Fail("Failed Conversion for Assert"); } } }
private void TryExecute(int update, IDSFDataObject dataObject, List <IWarewolfIterator> itrs, IWarewolfListIterator itrCollection, List <MethodParameter> methodParameters, PluginInvokeArgs args) { while (itrCollection.HasMoreData()) { var pos = 0; foreach (var itr in itrs) { var injectVal = itrCollection.FetchNextValue(itr); var param = methodParameters.ToList()[pos]; param.Value = param.EmptyToNull && (injectVal == null || string.Compare(injectVal, string.Empty, StringComparison.InvariantCultureIgnoreCase) == 0) ? null : injectVal; pos++; } if (!IsObject) { var i = 0; foreach (var serviceOutputMapping in Outputs) { OutputDescription.DataSourceShapes[0].Paths[i].OutputExpression = DataListUtil.AddBracketsToValueIfNotExist(serviceOutputMapping.MappedTo); i++; } var outputFormatter = OutputFormatterFactory.CreateOutputFormatter(OutputDescription); args.OutputFormatter = outputFormatter; } var result = PluginServiceExecutionFactory.InvokePlugin(args).ToString(); ResponseManager = new ResponseManager { OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName }; ResponseManager.PushResponseIntoEnvironment(result, update, dataObject, false); } }
void TryExecuteService(int update, IDSFDataObject dataObject, PluginExecutionDto pluginExecutionDto, PluginInvokeArgs args) { using (var appDomain = PluginServiceExecutionFactory.CreateAppDomain()) { if (dataObject.IsServiceTestExecution) { var serviceTestStep = dataObject.ServiceTest?.TestSteps?.Flatten(step => step.Children)?.FirstOrDefault(step => step.UniqueId == pluginExecutionDto.Args.PluginConstructor.ID); if (serviceTestStep != null && serviceTestStep.Type == StepType.Mock) { var start = DateTime.Now; MockConstructorExecution(dataObject, serviceTestStep, ref pluginExecutionDto); DebugStateForConstructorInputsOutputs(dataObject, update, true, start); } else { var start = DateTime.Now; RegularConstructorExecution(dataObject, appDomain, ref pluginExecutionDto); DebugStateForConstructorInputsOutputs(dataObject, update, false, start); } } else { var start = DateTime.Now; RegularConstructorExecution(dataObject, appDomain, ref pluginExecutionDto); DebugStateForConstructorInputsOutputs(dataObject, update, false, start); } var index = 0; foreach (var dev2MethodInfo in args.MethodsToRun) { if (dataObject.IsServiceTestExecution) { var serviceTestStep = dataObject.ServiceTest?.TestSteps?.Flatten(step => step.Children)?.FirstOrDefault(step => step.UniqueId == dev2MethodInfo.ID); MethodExecution(update, dataObject, pluginExecutionDto, appDomain, index, dev2MethodInfo, serviceTestStep); } else { RegularMethodExecution(appDomain, pluginExecutionDto, dev2MethodInfo, index, update, dataObject); } if (dev2MethodInfo.HasError) { break; } index++; } } }