public void Dont_do_anything_when_bad_input_parameters() { var contentWfName = "I_DONT_MAKE_PROBLEMS"; var sessionShareExtention = new SessionShareExtention(); var customActivity = new CustomActivity(); var wfIdentity = new WorkflowIdentity(contentWfName, new Version(WfVersion), WfPackageName); var wfAppFactory = GetWfFactory(wfIdentity, customActivity); using (var childContainer = _container.CreateChildContainer()) { childContainer.RegisterInstance <IWorkflowApplicationFactory>(wfAppFactory); childContainer.RegisterInstance(sessionShareExtention); using (var session = _sessionFactory.OpenSession()) using (var transaction = session.BeginTransaction()) { sessionShareExtention.SharedSession = session; var inputs = new Dictionary <string, object> { { "ContentWorkflowIdentity", GetWfFullName(contentWfName) }, { "MandantCode", "NotExistingMandantCode" }, { "QueueMessageTypeCode", "NotExistingQueueMessageTypeCode" } }; var service = childContainer.Resolve <TestWorkflowService>(); service.Run(_mainDoWhileWfIdentity, inputs); customActivity.IsExecuted.Should().BeFalse(); transaction.Rollback(); } } }
public void QueueState_should_be_error_when_content_wf_exception() { var contentWfName = "I_THROW_EXCEPTION"; var sessionShareExtention = new SessionShareExtention(); var customActivity = new CustomActivity(Error); var wfIdentity = new WorkflowIdentity(contentWfName, new Version(WfVersion), WfPackageName); var wfAppFactory = GetWfFactory(wfIdentity, customActivity); using (var childContainer = _container.CreateChildContainer()) { childContainer.RegisterInstance <IWorkflowApplicationFactory>(wfAppFactory); childContainer.RegisterInstance(sessionShareExtention); using (var session = _sessionFactory.OpenSession()) using (var transaction = session.BeginTransaction()) { sessionShareExtention.SharedSession = session; var queueIn = CreateQueueIn(session); session.Save(queueIn); var inputs = new Dictionary <string, object> { { "ContentWorkflowIdentity", GetWfFullName(contentWfName) }, { "MandantCode", queueIn.Mandant.PartnerCode }, { "QueueMessageTypeCode", queueIn.QueueMessageType.Code } }; var service = childContainer.Resolve <TestWorkflowService>(); service.Run(_mainDoWhileWfIdentity, inputs); queueIn.QueueMessageState.Should().Be(QueueMessageStates.Error); transaction.Rollback(); } } }
public void Dont_do_anything_when_no_ready_queue() { var contentWfName = "I_DONT_MAKE_PROBLEMS"; var sessionShareExtention = new SessionShareExtention(); var customActivity = new CustomActivity(); var wfIdentity = new WorkflowIdentity(contentWfName, new Version(WfVersion), WfPackageName); var wfAppFactory = GetWfFactory(wfIdentity, customActivity); using (var childContainer = _container.CreateChildContainer()) { childContainer.RegisterInstance <IWorkflowApplicationFactory>(wfAppFactory); childContainer.RegisterInstance(sessionShareExtention); using (var session = _sessionFactory.OpenSession()) using (var transaction = session.BeginTransaction()) { sessionShareExtention.SharedSession = session; var queueIn = CreateQueueIn(session); session.Save(queueIn); var queueList = session.Query <IoQueueIn>().Where(i => i.Mandant.PartnerCode == queueIn.Mandant.PartnerCode && i.QueueMessageType.Code == queueIn.QueueMessageType.Code); foreach (var queue in queueList) { queue.QueueMessageState = QueueMessageStates.Completed; } var inputs = new Dictionary <string, object> { { "ContentWorkflowIdentity", GetWfFullName(contentWfName) }, { "MandantCode", queueIn.Mandant.PartnerCode }, { "QueueMessageTypeCode", queueIn.QueueMessageType.Code } }; var service = childContainer.Resolve <TestWorkflowService>(); service.Run(_mainDoWhileWfIdentity, inputs); customActivity.IsExecuted.Should().BeFalse(); transaction.Rollback(); } } }
public void QueueState_should_be_processing_while_processing() { var contentWfName = "I_DONT_MAKE_PROBLEMS"; var sessionShareExtention = new SessionShareExtention(); var customActivity = new CustomActivity(); var wfIdentity = new WorkflowIdentity(contentWfName, new Version(WfVersion), WfPackageName); var wfAppFactory = GetWfFactory(wfIdentity, customActivity); using (var childContainer = _container.CreateChildContainer()) { childContainer.RegisterInstance <IWorkflowApplicationFactory>(wfAppFactory); childContainer.RegisterInstance(sessionShareExtention); using (var session = _sessionFactory.OpenSession()) using (var transaction = session.BeginTransaction()) { sessionShareExtention.SharedSession = session; var queueIn = CreateQueueIn(session); session.Save(queueIn); var inputs = new Dictionary <string, object> { { "ContentWorkflowIdentity", GetWfFullName(contentWfName) }, { "MandantCode", queueIn.Mandant.PartnerCode }, { "QueueMessageTypeCode", queueIn.QueueMessageType.Code } }; var service = childContainer.Resolve <TestWorkflowService>(); service.Run(_mainDoWhileWfIdentity, inputs); customActivity.IsExecuted.Should().BeTrue(); queueIn.QueueMessageState.Should().Be(QueueMessageStates.Completed); var queueHistory = session.Query <IoQueueInHistory>().Where(i => i.ID == queueIn.ID); queueHistory.Select(i => i.QueueMessageState).Should().Contain(QueueMessageStates.Processing); transaction.Rollback(); } } }