private UIWorkflow CreateTestUiWorkflow()
        {
            var dataManagerConfigurator = new TestDataManagersConfigurator();

            // Generate Test version file
            var versionsManager = dataManagerConfigurator.GetSC2VersionsManager();

            var version2 = versionsManager.GetVersion("2.0.5");
            versionsManager.SaveVersion(version2);

            var version = versionsManager.GetVersion("2.2.0");
            versionsManager.SaveVersion(version);

            var version3 = versionsManager.GetVersion("5.0.3");
            versionsManager.SaveVersion(version3);

            // Generate test builds files
            //var boManagers = dataManagerConfigurator.GetBuildOrdersManager();
//            var testBuilds = boManagers.GetBuildOrders().ToList();
//            foreach (var buildOrderEntity in testBuilds)
//            {
//                boManagers.SaveBuildOrder(buildOrderEntity);
//            }

            var workflow = new UIWorkflow(dataManagerConfigurator, new WinFormViewFactory());

            return workflow;
        }
Esempio n. 2
0
        public dynamic Workflow()
        {
            var workflowId  = Request.Form["WorkflowId"];
            var connId      = Request.Form["ConnectionId"];
            var currentUser = _userStore.GetUser(this.Context.CurrentUser.UserName);

            // get the connection and load the workflow store
            ConnectionModel connection = _userStore.GetConnection(connId);
            IWorkflowStore  store      = _workflowStoreFactory.GetWorkflowStore(connection);

            // extract the data we need to display the workflow
            string json = store.GetWorkflowAsJson(workflowId);

            if (json == null)
            {
                return(this.Response.AsJson(new { Message = "No workflow found matching the supplied workflow and connection (the workflow may have completed)." }, HttpStatusCode.NotFound));
            }
            UIWorkflow wf = _workflowInfoService.GetWorkflowInfoFromJson(json, connection.WorkflowStoreType);

            WorkflowViewModel viewModel = new WorkflowViewModel();

            viewModel.WorkflowJson = json;
            viewModel.IsSuspended  = wf.IsSuspended;
            return(this.Response.AsJson(viewModel));
        }
        public BuildMakerApplicationContext()
        {
            // Note: To run test workflow uncomment next line and comment CreateUiWorkflow() merthod call
            mUiWorkflow = CreateTestUiWorkflow();
            //mUiWorkflow = CreateUiWorkflow();

            mUiWorkflow.CurrentViewChanged += MUiWorkflowCurrentViewChanged;
            mUiWorkflow.ShowMainForm();
        }
Esempio n. 4
0
        public void List_ConnectionFound_SetsModelAndReturnsView()
        {
            // setup
            var currentUser = new UserIdentity()
            {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var browser      = CreateBrowser(currentUser);
            var connectionId = Guid.NewGuid();
            int count        = new Random().Next(5, 20);

            ConnectionModel connection = new ConnectionModel()
            {
                Id   = connectionId,
                Host = "myserver"
            };

            _userStore.GetConnection(connectionId).Returns(connection);

            List <UIWorkflow> workflows = new List <UIWorkflow>();

            for (int i = 0; i < count; i++)
            {
                UIWorkflow wf = new UIWorkflow();
                wf.Id           = Guid.NewGuid();
                wf.WorkflowType = typeof(UIWorkflow).FullName;
                workflows.Add(wf);
            }
            _workflowInfoService.GetIncompleteWorkflows(connection, 50).Returns(workflows);

            // execute
            var response = browser.Post(Actions.Store.List, (with) =>
            {
                with.HttpRequest();
                with.FormsAuth(currentUser.Id, new Nancy.Authentication.Forms.FormsAuthenticationConfiguration());
                with.FormValue("ConnectionId", connectionId.ToString());
                with.FormValue("WorkflowCount", "10");
            });

            // assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.AreEqual("text/html", response.ContentType);

            // SUCKS - for some reason this view throws a reference exception trying to load
            // Stateless.WorkflowEngine which is handled in the app with the config file.  Not sure
            // how to do this programatically so leaving this test for now...
            // Adding the assembly to the test RazorConfiguration didn't help and broke other tests....

            //string responseBody = response.Body.AsString();
            //response.Body["table"].ShouldExistOnce();

            //response.Body["td"]
            //    .ShouldExistExactly(count);
        }
Esempio n. 5
0
        public void Workflow_WorkflowFound_SetsModelAndReturnsView()
        {
            // setup
            var currentUser = new UserIdentity()
            {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var        browser      = CreateBrowser(currentUser);
            var        workflowId   = Guid.NewGuid();
            var        connectionId = Guid.NewGuid();
            UIWorkflow uiWorkflow   = new UIWorkflow();

            uiWorkflow.IsSuspended = DateTime.Now.Second > 30;

            ConnectionModel connection = new ConnectionModel()
            {
                Id   = connectionId,
                Host = "myserver",
                WorkflowStoreType = WorkflowStoreType.MongoDb
            };

            _userStore.GetConnection(connectionId).Returns(connection);

            string json = JsonConvert.SerializeObject(uiWorkflow);

            IWorkflowStore workflowStore = Substitute.For <IWorkflowStore>();

            _workflowStoreFactory.GetWorkflowStore(connection).Returns(workflowStore);
            workflowStore.GetWorkflowAsJson(workflowId).Returns(json);

            _workflowInfoService.GetWorkflowInfoFromJson(json, WorkflowStoreType.MongoDb).Returns(uiWorkflow);

            // execute
            var response = browser.Post(Actions.Store.Workflow, (with) =>
            {
                with.HttpRequest();
                with.FormsAuth(currentUser.Id, new Nancy.Authentication.Forms.FormsAuthenticationConfiguration());
                with.FormValue("WorkflowId", workflowId.ToString());
                with.FormValue("ConnectionId", connectionId.ToString());
            });

            // assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.AreEqual("application/json; charset=utf-8", response.ContentType);

            WorkflowViewModel wvm = JsonConvert.DeserializeObject <WorkflowViewModel>(response.Body.AsString());

            Assert.IsNotNull(wvm);
            Assert.AreEqual(json, wvm.WorkflowJson);
            Assert.AreEqual(uiWorkflow.IsSuspended, wvm.IsSuspended);
        }
        private UIWorkflow CreateUiWorkflow()
        {
            var workflow = new UIWorkflow(new DataManagersJsonStorageConfigurator("Versions//"), new WinFormViewFactory());

            return workflow;
        }