private IEsbExecutionContainer GenerateContainer(ServiceAction serviceAction, IDSFDataObject dataObj, IWorkspace theWorkspace) { // set the ID for later use ;) dataObj.WorkspaceID = _workspace.ID; IEsbExecutionContainer result = null; if (dataObj.IsServiceTestExecution) { result = new ServiceTestExecutionContainer(serviceAction, dataObj, _workspace, _esbChannel, _request); } else { switch (serviceAction.ActionType) { case enActionType.InvokeManagementDynamicService: result = new InternalServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel, _request); break; case enActionType.InvokeWebService: result = new WebServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel); break; case enActionType.Workflow: result = new PerfmonExecutionContainer(new WfExecutionContainer(serviceAction, dataObj, theWorkspace, _esbChannel)); break; case enActionType.RemoteService: result = new RemoteWorkflowExecutionContainer(serviceAction, dataObj, null, _esbChannel); break; } } return(result); }
public void Execute_GivenNullService_ShouldAddValidError() { //---------------Set up test pack------------------- const string datalist = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>"; var serviceAction = new ServiceAction() { DataListSpecification = new StringBuilder(datalist), ServiceName = "name", Name = "Name" }; var dsfObj = new Mock <IDSFDataObject>(); dsfObj.Setup(o => o.Environment).Returns(new ExecutionEnvironment()); dsfObj.Setup(o => o.Environment.Eval(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(), false)) .Returns(CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString("Args"))); var workSpace = new Mock <IWorkspace>(); var channel = new Mock <IEsbChannel>(); var esbExecuteRequest = new EsbExecuteRequest(); var internalServiceContainer = new InternalServiceContainer(serviceAction, dsfObj.Object, workSpace.Object, channel.Object, esbExecuteRequest); //---------------Assert Precondition---------------- Assert.AreEqual(4, esbExecuteRequest.Args.Count); //---------------Execute Test ---------------------- ErrorResultTO errorResultTO; internalServiceContainer.Execute(out errorResultTO, 1); //---------------Test Result ----------------------- Assert.AreEqual(1, errorResultTO.FetchErrors().Count); Assert.AreEqual(string.Format(ErrorResource.CouldNotLocateManagementService, "name"), errorResultTO.FetchErrors().Single()); }
public void GenerateRequestDictionaryFromDataObject_GivenValidArgs_ShouldClearArgsAndErros() { const string datalist = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>"; var serviceAction = new ServiceAction() { DataListSpecification = new StringBuilder(datalist) }; var dsfObj = new Mock <IDSFDataObject>(); dsfObj.Setup(o => o.Environment).Returns(new ExecutionEnvironment()); dsfObj.Setup(o => o.Environment.Eval(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(), false)) .Returns(CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString("Args"))); var workSpace = new Mock <IWorkspace>(); var channel = new Mock <IEsbChannel>(); var esbExecuteRequest = new EsbExecuteRequest(); var internalServiceContainer = new InternalServiceContainer(serviceAction, dsfObj.Object, workSpace.Object, channel.Object, esbExecuteRequest); var privateObject = new PrivateObject(internalServiceContainer); //---------------Assert Precondition---------------- Assert.AreEqual(4, esbExecuteRequest.Args.Count); //---------------Execute Test ---------------------- var errorResultTO = new ErrorResultTO(); privateObject.Invoke("GenerateRequestDictionaryFromDataObject", errorResultTO); //---------------Test Result ----------------------- Assert.AreEqual(0, esbExecuteRequest.Args.Count); }
public void OnConstruction_GivenValidArgs_ShouldBuildCorrectly() { //---------------Set up test pack------------------- //InternalServiceContainer(ServiceAction sa, IDSFDataObject dataObj, IWorkspace theWorkspace, IEsbChannel esbChannel, EsbExecuteRequest request) const string datalist = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>"; var serviceAction = new ServiceAction() { DataListSpecification = new StringBuilder(datalist) }; var dsfObj = new Mock <IDSFDataObject>(); dsfObj.Setup(o => o.Environment).Returns(new ExecutionEnvironment()); dsfObj.Setup(o => o.Environment.Eval(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(), false)) .Returns(CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString("Args"))); var workSpace = new Mock <IWorkspace>(); var channel = new Mock <IEsbChannel>(); var esbExecuteRequest = new EsbExecuteRequest(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var internalServiceContainer = new InternalServiceContainer(serviceAction, dsfObj.Object, workSpace.Object, channel.Object, esbExecuteRequest); //---------------Test Result ----------------------- Assert.AreEqual(4, esbExecuteRequest.Args.Count); Assert.IsNotNull(internalServiceContainer, "Cannot create new InternalServiceContainer object."); }
public void Execute_GivenService_ShouldAddBuildRequestArgs() { //---------------Set up test pack------------------- const string datalist = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>"; var serviceAction = new ServiceAction() { DataListSpecification = new StringBuilder(datalist), ServiceName = "name", Name = "Name" }; var dsfObj = new Mock <IDSFDataObject>(); dsfObj.Setup(o => o.Environment).Returns(new ExecutionEnvironment()); dsfObj.Setup(o => o.Environment.Eval(It.IsAny <string>(), It.IsAny <int>())) .Returns(CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString("Args"))); var workSpace = new Mock <IWorkspace>(); var channel = new Mock <IEsbChannel>(); var esbExecuteRequest = new EsbExecuteRequest(); var locater = new Mock <IEsbManagementServiceLocator>(); locater.Setup(loc => loc.LocateManagementService("Name")).Returns(new FetchPluginSources()); var internalServiceContainer = new InternalServiceContainer(serviceAction, dsfObj.Object, workSpace.Object, channel.Object, esbExecuteRequest, locater.Object); //---------------Assert Precondition---------------- Assert.AreEqual(4, esbExecuteRequest.Args.Count); //---------------Execute Test ---------------------- var execute = internalServiceContainer.Execute(out ErrorResultTO errorResultTO, 1); //---------------Test Result ----------------------- locater.VerifyAll(); }
private EsbExecutionContainer GenerateContainer(ServiceAction serviceAction, IDSFDataObject dataObj, IWorkspace theWorkspace) { // set the ID for later use ;) dataObj.WorkspaceID = _workspace.ID; EsbExecutionContainer result = null; switch (serviceAction.ActionType) { case Common.Interfaces.Core.DynamicServices.enActionType.InvokeManagementDynamicService: result = new InternalServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel, _request); break; case Common.Interfaces.Core.DynamicServices.enActionType.InvokeStoredProc: result = new DatabaseServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel); break; case Common.Interfaces.Core.DynamicServices.enActionType.InvokeWebService: result = new WebServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel); break; case Common.Interfaces.Core.DynamicServices.enActionType.Plugin: result = new PluginServiceContainer(serviceAction, dataObj, theWorkspace, _esbChannel); break; case Common.Interfaces.Core.DynamicServices.enActionType.Workflow: result = new WfExecutionContainer(serviceAction, dataObj, theWorkspace, _esbChannel); break; case Common.Interfaces.Core.DynamicServices.enActionType.RemoteService: result = new RemoteWorkflowExecutionContainer(serviceAction, dataObj, null, _esbChannel); break; } return(result); }