public async Task GetTransitionsAsync_ChangeStateForArtifactAsync_SuccessfullyCallsRepo() { // Arrange int itemId = 1; int userId = 1; int workflowId = 4; int fromStateId = 2; int toStateId = 5; const int transitionId = 10; var vcArtifactInfo = new VersionControlArtifactInfo { Id = itemId, VersionCount = 10, LockedByUser = new UserGroup { Id = userId } }; _artifactVersionsRepositoryMock.Setup(t => t.IsItemDeleted(itemId)) .ReturnsAsync(false); _artifactVersionsRepositoryMock.Setup(t => t.GetVersionControlArtifactInfoAsync(itemId, null, 1)) .ReturnsAsync(vcArtifactInfo); _applicationSettingsRepositoryMock.Setup(t => t.GetTenantInfo(It.IsAny <IDbTransaction>())).ReturnsAsync(new TenantInfo() { TenantId = Guid.NewGuid().ToString() }); var wfStateChangeParam = new WorkflowStateChangeParameter { CurrentVersionId = 10, ToStateId = toStateId, FromStateId = fromStateId, TransitionId = transitionId }; var fromState = new WorkflowState { Id = fromStateId, WorkflowId = workflowId, Name = "Ready" }; var toState = new WorkflowState { Id = toStateId, Name = "Close", WorkflowId = workflowId }; _workflowRepositoryMock.Setup(t => t.GetStateForArtifactAsync(userId, itemId, int.MaxValue, true)) .ReturnsAsync(fromState); var transition = new WorkflowTransition() { FromState = fromState, Id = transitionId, ToState = toState, WorkflowId = workflowId, Name = "Ready to Closed" }; _workflowRepositoryMock.Setup( t => t.GetTransitionForAssociatedStatesAsync(userId, itemId, workflowId, fromStateId, toStateId, transitionId)) .ReturnsAsync(transition); _workflowRepositoryMock.Setup( t => t.GetWorkflowEventTriggersForTransition(userId, itemId, workflowId, fromStateId, toStateId, transitionId)) .ReturnsAsync(new WorkflowTriggersContainer()); _workflowRepositoryMock.Setup(t => t.ChangeStateForArtifactAsync(1, itemId, It.IsAny <WorkflowStateChangeParameterEx>(), It.IsAny <IDbTransaction>())) .ReturnsAsync(toState); // Act var result = await _workflowServiceMock.ChangeStateForArtifactAsync(1, "admin", itemId, wfStateChangeParam); // Assert Assert.AreEqual(toState, result.Item); Assert.AreEqual(QueryResultCode.Success, result.ResultCode); }