Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public void ExecuteLogErrorRequest(IDSFDataObject dataObject, Guid workspaceId, string uri, out ErrorResultTO errors, int update)
        {
            errors = null;
            var theWorkspace       = WorkspaceRepository.Instance.Get(workspaceId);
            var executionContainer = new RemoteWorkflowExecutionContainer(null, dataObject, theWorkspace, this);

            executionContainer.PerformLogExecution(uri, update);
        }
        public void ExecuteSubRequest_GivenExecuteWorkflowAsync_ShouldCheckIsRemoteWorkflow2()
        {
            //---------------Set up test pack-------------------
            var dataObj     = new Mock <IDSFDataObject>();
            var dataObjClon = new Mock <IDSFDataObject>();

            dataObjClon.Setup(o => o.ServiceName).Returns("Service Name");
            var rCat = new Mock <IResourceCatalog>();
            var mock = new Mock <IResource>();

            rCat.Setup(catalog => catalog.GetResource(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(mock.Object);
            var workRepo = new Mock <IWorkspaceRepository>();

            workRepo.Setup(repository => repository.Get(It.IsAny <Guid>(), It.IsAny <bool>(), It.IsAny <bool>())).Returns(new Workspace(Guid.NewGuid()));
            dataObj.SetupAllProperties();
            dataObj.Setup(o => o.Environment).Returns(new ExecutionEnvironment());
            dataObj.Setup(o => o.IsRemoteWorkflow());
            dataObj.Setup(o => o.RunWorkflowAsync).Returns(true);
            dataObj.Setup(o => o.Clone()).Returns(dataObjClon.Object);
            var mapManager          = new Mock <IEnvironmentOutputMappingManager>();
            var esbServicesEndpoint = new EsbServicesEndpoint();
            var privateObject       = new PrivateObject(esbServicesEndpoint);
            var invokerMock         = new Mock <IEsbServiceInvoker>();
            var remoteWorkflowExecutionContainer = new RemoteWorkflowExecutionContainer(new ServiceAction(), dataObj.Object, new Mock <IWorkspace>().Object, new Mock <IEsbChannel>().Object);

            invokerMock.Setup(invoker => invoker.GenerateInvokeContainer(It.IsAny <IDSFDataObject>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <Guid>())).Returns(remoteWorkflowExecutionContainer);
            var err = new ErrorResultTO();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            object[] args = { dataObj.Object, "inputs", invokerMock.Object, false, Guid.Empty, err, 0 };
            privateObject.Invoke("ExecuteRequestAsync", args);
            Assert.IsNotNull(esbServicesEndpoint);
            var errorResultTO = args[5] as ErrorResultTO;
            //---------------Test Result -----------------------
            var errors = errorResultTO?.FetchErrors();

            Assert.IsNotNull(errors);
            Assert.IsTrue(errors.Count > 0);
            Assert.IsTrue(errors.Any(p => p.Contains("Asynchronous execution failed: Remote server unreachable")));
            Assert.IsTrue(errors.Any(p => p.Contains("Service not found")));
        }
Esempio n. 4
0
        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);
        }