public async Task GetWorkflowExportAsync_WorkflowForXmlExists_ReturnEmptyWorkflow() { // arrange _workflow = new SqlWorkflow(); _workflowArtifactTypes = new List <SqlWorkflowArtifactTypes>(); _workflowStates = new List <SqlState>(); _workflowEvents = new List <SqlWorkflowEventData>(); _userRepositoryMock.Setup(repo => repo.GetUsersAsync(It.IsAny <Pagination>(), null, null, null)) .ReturnsAsync(_userQueryResult); _workflowRepositoryMock.Setup(repo => repo.GetWorkflowDetailsAsync(It.IsAny <int>())) .ReturnsAsync(_workflow); _workflowRepositoryMock.Setup(repo => repo.GetWorkflowArtifactTypesAsync(It.IsAny <int>())) .ReturnsAsync(_workflowArtifactTypes); _workflowRepositoryMock.Setup(repo => repo.GetWorkflowStatesAsync(It.IsAny <int>())) .ReturnsAsync(_workflowStates); _workflowRepositoryMock.Setup(repo => repo.GetWorkflowEventsAsync(It.IsAny <int>())) .ReturnsAsync(_workflowEvents); _projectMetaRepository.Setup(repo => repo.GetStandardProjectTypesAsync()).ReturnsAsync(_projectTypes); // act var workflowExport = await _service.GetWorkflowExportAsync(WorkflowId, WorkflowMode.Xml); // assert Assert.IsNotNull(workflowExport); Assert.IsFalse(workflowExport.IsActive); Assert.IsTrue(workflowExport.Projects.IsEmpty()); Assert.IsTrue(workflowExport.States.IsEmpty()); Assert.IsTrue(workflowExport.TransitionEvents.IsEmpty()); Assert.IsTrue(workflowExport.PropertyChangeEvents.IsEmpty()); Assert.IsTrue(workflowExport.NewArtifactEvents.IsEmpty()); }
public async Task UpdateWorkflowAsync(SqlWorkflow workflow, int revision, IDbTransaction transaction = null) { var parameters = new DynamicParameters(); parameters.Add("@WorkflowId", workflow.WorkflowId); parameters.Add("@Name", workflow.Name); parameters.Add("@Description", workflow.Description); parameters.Add("@Status", workflow.Active); parameters.Add("@RevisionId", revision); parameters.Add("@CurrentVersion", workflow.VersionId); parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output); if (transaction != null) { await transaction.Connection.ExecuteScalarAsync <int>("UpdateWorkflow", parameters, transaction, commandType : CommandType.StoredProcedure); } else { await _connectionWrapper.ExecuteScalarAsync <int>("UpdateWorkflow", parameters, commandType : CommandType.StoredProcedure); } var errorCode = parameters.Get <int?>("ErrorCode"); if (errorCode.HasValue) { switch (errorCode.Value) { case (int)SqlErrorCodes.GeneralSqlError: throw new Exception(ErrorMessages.GeneralErrorOfUpdatingWorkflow); case (int)SqlErrorCodes.WorkflowWithSuchANameAlreadyExists: throw new ConflictException(ErrorMessages.WorkflowAlreadyExists, ErrorCodes.WorkflowAlreadyExists); case (int)SqlErrorCodes.WorkflowWithCurrentIdNotExist: throw new ResourceNotFoundException(ErrorMessages.WorkflowNotExist, ErrorCodes.ResourceNotFound); case (int)SqlErrorCodes.WorkflowWithCurrentIdIsActive: throw new ConflictException(ErrorMessages.WorkflowIsActive, ErrorCodes.WorkflowIsActive); case (int)SqlErrorCodes.WorkflowWithoutProjectArtifactTypeAssignmentsCannotBeActivated: throw new ConflictException(ErrorMessages.WorkflowWithoutProjectArtifactTypeAssignmentsCannotBeActivated, ErrorCodes.WorkflowProjectHasNoLiveArtifactTypes); case (int)SqlErrorCodes.WorkflowHasSameProjectArtifactTypeAssignedToAnotherActiveWorkflow: throw new ConflictException(ErrorMessages.WorkflowHasSameProjectArtifactTypeAssignedToAnotherActiveWorkflow, ErrorCodes.Conflict); case (int)SqlErrorCodes.WorkflowVersionsNotEqual: throw new ConflictException(ErrorMessages.WorkflowVersionsNotEqual, ErrorCodes.WorkflowVersionsNotEqual); } } }
public static void creatUser(int _age, string _name, string _surname, string _email, string _password) { UsersModel user = new UsersModel() { age = _age, name = _name, surname = _surname, email = _email, password = _password }; string sql = @"INSERT INTO dbo.Users (age, name, surname, email, password) VALUES(@age, @name, @surname, @email, @password)"; SqlWorkflow.saveData(sql, user); }
public async Task UpdateWorkflowStatusAsync_WorkflowHasDifferentVersion_ReturnConflicErrorResult() { // Arrange var existingWorkflow = new SqlWorkflow { VersionId = 1, WorkflowId = 1 }; var updateSatus = new StatusUpdate { VersionId = 2, Active = true }; _workflowRepositoryMock.Setup(repo => repo.GetWorkflowDetailsAsync(It.IsAny <int>())) .ReturnsAsync(existingWorkflow); // Act await _service.UpdateWorkflowStatusAsync(updateSatus, WorkflowId, SessionUserId); // Assert // Exception }
public async Task <int> CreateWorkflow(SqlWorkflow workflow, int revision, IDbTransaction transaction) { var parameters = new DynamicParameters(); parameters.Add("@Name", workflow.Name); parameters.Add("@Description", workflow.Description); parameters.Add("@RevisionId", revision); parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output); int result; if (transaction == null) { result = await _connectionWrapper.ExecuteScalarAsync <int> ( "CreateWorkflow", parameters, commandType : CommandType.StoredProcedure); } else { result = await transaction.Connection.ExecuteScalarAsync <int> ( "CreateWorkflow", parameters, transaction, commandType : CommandType.StoredProcedure); } var errorCode = parameters.Get <int?>("ErrorCode"); if (errorCode.HasValue) { switch (errorCode.Value) { case (int)SqlErrorCodes.WorkflowWithSuchANameAlreadyExists: throw new ConflictException(ErrorMessages.WorkflowAlreadyExists, ErrorCodes.WorkflowAlreadyExists); case (int)SqlErrorCodes.GeneralSqlError: throw new Exception(ErrorMessages.GeneralErrorOfCreatingWorkflow); } } return(result); }
public static List <UsersModel> loadUsers() { string sql = @"SELECT * FROM dbo.Users"; return(SqlWorkflow.loadData <UsersModel> (sql)); }
public void Initialize() { _workflowRepositoryMock = new Mock <IWorkflowRepository>(); _workflowXmlValidatorMock = new Mock <IWorkflowXmlValidator>(); _userRepositoryMock = new Mock <IUserRepository>(); _usersRepositoryMock = new Mock <IUsersRepository>(); _workflowValidationErrorBuilder = new Mock <IWorkflowValidationErrorBuilder>(); _triggerConverter = new Mock <ITriggerConverter>(); _projectMetaRepository = new Mock <IProjectMetaRepository>(); _artifactRepository = new Mock <IArtifactRepository>(); _applicationSettingsRepositoryMock = new Mock <IApplicationSettingsRepository>(); _applicationSettingsRepositoryMock = new Mock <IApplicationSettingsRepository>(); _serviceLogRepositoryMock = new Mock <IServiceLogRepository>(); _sendMessageExecutorMock = new Mock <ISendMessageExecutor>(); _webhooksRepositoryMock = new Mock <IWebhooksRepository>(); _service = new WorkflowService(_workflowRepositoryMock.Object, _workflowXmlValidatorMock.Object, _usersRepositoryMock.Object, _workflowValidationErrorBuilder.Object, _projectMetaRepository.Object, _triggerConverter.Object, null, null, _artifactRepository.Object, _applicationSettingsRepositoryMock.Object, _serviceLogRepositoryMock.Object, _sendMessageExecutorMock.Object, _webhooksRepositoryMock.Object); _workflowDataValidatorMock = new Mock <IWorkflowDataValidator>(); _workflowDataValidatorMock .Setup(q => q.ValidateUpdateDataAsync(It.IsAny <IeWorkflow>(), It.IsAny <ProjectTypes>())) .ReturnsAsync(new WorkflowDataValidationResult()); typeof(WorkflowService) .GetField("_workflowDataValidator", BindingFlags.Instance | BindingFlags.NonPublic) ?.SetValue(_service, _workflowDataValidatorMock.Object); _workflow = new SqlWorkflow { Name = "Workflow1", Description = "Workflow1Description" }; _workflowArtifactTypes = new List <SqlWorkflowArtifactTypes> { new SqlWorkflowArtifactTypes { ProjectId = 1, ProjectPath = "Project1", ArtifactTypeName = "Artifact1", ArtifactTypeId = 204 }, new SqlWorkflowArtifactTypes { ProjectId = 2, ProjectPath = "Project2", ArtifactTypeName = "Artifact2", ArtifactTypeId = 205 }, new SqlWorkflowArtifactTypes { ProjectId = 3, ProjectPath = "Project3", ArtifactTypeName = "Artifact3", ArtifactTypeId = 206 } }; _workflowStates = new List <SqlState> { new SqlState { VersionId = 1, WorkflowStateId = 1, Name = "New", Default = true, CanvasSettings = I18NHelper.FormatInvariant("<S><LN>{0}</LN></S>", Location) }, new SqlState { VersionId = 2, WorkflowStateId = 2, Name = "Active", CanvasSettings = string.Empty } }; _workflowEvents = new List <SqlWorkflowEventData> { new SqlWorkflowEventData { WorkflowId = 10, Name = "Transition1", FromState = "New", ToState = "Active", FromStateId = 1, ToStateId = 2, Permissions = "<P S=\"0\"><G>1</G></P>", CanvasSettings = I18NHelper.FormatInvariant("<S><PRT><FR>{0}</FR><TO>{1}</TO></PRT></S>", (int)FromPort, (int)ToPort), Type = 0, Triggers = "<TSR><TS><T><AEN><ES><E>test.com</E></ES><M>4QOTT0IR7W</M></AEN></T></TS></TSR>" }, new SqlWorkflowEventData { WorkflowId = 10, Name = "PropertyChange1", Type = 1, Triggers = "<TSR><TS><T><AEN><ES><E>test.com</E></ES><M>4QOTT0IR7W</M></AEN></T></TS></TSR>", PropertyTypeId = 1 }, new SqlWorkflowEventData { WorkflowId = 10, Name = "PropertyChange2", Type = 1, Triggers = "<TSR><TS><T><AEN><ES><E>test.com</E></ES><M>4QOTT0IR7W</M></AEN></T></TS></TSR>", PropertyTypeId = 2 }, new SqlWorkflowEventData { WorkflowId = 10, Name = "NewArtifact1", Type = 2, Triggers = "<TSR><TS><T><AEN><ES><E>test.com</E></ES><M>4QOTT0IR7W</M></AEN></T></TS></TSR>", }, }; _userItems = new List <UserDto>(); _userQueryResult = new QueryResult <UserDto>(); _projectTypes = new ProjectTypes(); _projectTypes.PropertyTypes.Add(new PropertyType { Name = "Property1", Id = 1 }); _projectTypes.PropertyTypes.Add(new PropertyType { Name = "Property2", Id = 2 }); _triggers = new List <IeTrigger> { new IeTrigger() }; }