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; }
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(); }
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); }
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; }