public async Task GrantAccessToApprovers() { // Arrange var cost = MockCost(); var techApprover = new ApprovalMember { Id = Guid.NewGuid(), MemberId = Guid.NewGuid(), CostUser = new CostUser { FullName = "Test" } }; var approvals = new List <Approval> { new Approval { Type = ApprovalType.IPM, ApprovalMembers = new List <ApprovalMember> { techApprover } } }; EFContext.Approval.AddRange(approvals); EFContext.SaveChanges(); // Act await ApprovalService.SubmitApprovals(cost, CostUser, approvals, BuType.Pg); // Assert PermissionServiceMock.Verify(p => p.GrantApproverAccess(CostUser.Id, cost.Id, It.IsAny <IEnumerable <CostUser> >(), It.IsAny <BuType>())); }
//Xem bang này có bảng lịch sử clone từ bảng này ra hay không? //Su dung chu yeu cho viec getMaxKey, phai lay max tu ca 2 bang moi co maxKey chuan private static string GetEntityNameHist(string entityName) { if (entityName == ApprovalOrder.EntityName()) { return(ApprovalOrderHist.EntityName()); } if (entityName == ApprovalPreRisk.EntityName()) { return(ApprovalPreRiskHist.EntityName()); } if (entityName == ApprovalAccount.EntityName()) { return(ApprovalAccountHist.EntityName()); } if (entityName == ApprovalMember.EntityName()) { return(ApprovalMemberHist.EntityName()); } if (entityName == ApprovalDealing.EntityName()) { return(ApprovalDealingHist.EntityName()); } if (entityName == ApprovalSystem.EntityName()) { return(ApprovalSystemHist.EntityName()); } return(null); }
public void ApprovalMember_To_ApprovalModel_Member_IsValid() { //Arrange var expectedMemberId = Guid.NewGuid(); var expectedFullName = "Mr Smith"; var expectedEmail = "*****@*****.**"; var expectedApprovalLimit = 25M; var expectedApprovalBandId = Guid.NewGuid(); var expectedBusinessRole = "A business role"; var expectedBusinessRoleCount = 1; var expectedComments = "Rejected cost because I wanted to"; var businessRoles = new List <UserBusinessRole> { new UserBusinessRole { BusinessRole = new BusinessRole { Value = expectedBusinessRole } } }; var entity = new ApprovalMember { MemberId = expectedMemberId, CostUser = new CostUser { ApprovalBandId = expectedApprovalBandId, ApprovalLimit = expectedApprovalLimit, FullName = expectedFullName, Email = expectedEmail, UserBusinessRoles = businessRoles }, RejectionDetails = new RejectionDetails { Comments = expectedComments } }; //Act var result = _mapper.Map <ApprovalMember, ApprovalModel.Member>(entity); //Assert result.Should().NotBeNull(); result.Id.Should().Be(expectedMemberId); result.FullName.Should().Be(expectedFullName); result.Email.Should().Be(expectedEmail); result.ApprovalLimit.Should().Be(expectedApprovalLimit.ToString()); result.ApprovalBandId.Should().Be(expectedApprovalBandId.ToString()); result.BusinessRoles.Should().HaveCount(expectedBusinessRoleCount); result.BusinessRoles.First().Should().Be(expectedBusinessRole); result.Comments.Should().Be(expectedComments); }
public void GetRemovedApprovers_HasRemovedApprovers() { //Arrange var x = new CostStageRevision(); var y = new CostStageRevision(); var xApproval1 = new Approval(); var xApproval2 = new Approval(); var xApprovalMember1 = new ApprovalMember(); var xApprovalMember2 = new ApprovalMember(); var xCostUser1 = new CostUser(); var removedCostUser = new CostUser(); var target = new CostStageRevisionAnalyser(); x.Approvals = new List <Approval>(); y.Approvals = new List <Approval>(); xApproval1.ApprovalMembers = new List <ApprovalMember>(); xApproval2.ApprovalMembers = new List <ApprovalMember>(); xApproval1.ApprovalMembers.Add(xApprovalMember1); xApproval2.ApprovalMembers.Add(xApprovalMember2); xApprovalMember1.CostUser = xCostUser1; xApprovalMember2.CostUser = removedCostUser; xCostUser1.Id = Guid.NewGuid(); removedCostUser.Id = Guid.NewGuid(); x.Approvals.Add(xApproval1); x.Approvals.Add(xApproval2); y.Approvals.Add(xApproval1); //Act var result = target.GetRemovedApprovers(x, y); //Assert result.Should().NotBeNull(); result.Should().HaveCount(1); var removedApprover = result.First(); removedApprover.Should().NotBeNull(); removedApprover.CostUser.Should().NotBeNull(); removedApprover.CostUser.Should().Be(removedCostUser); }
public void GetRemovedApprovers_InYAndNotInX() { //Arrange var x = new CostStageRevision(); var y = new CostStageRevision(); var xApproval1 = new Approval(); var xApproval2 = new Approval(); var xApprovalMember1 = new ApprovalMember(); var xApprovalMember2 = new ApprovalMember(); var xCostUser1 = new CostUser(); var xCostUser2 = new CostUser(); var target = new CostStageRevisionAnalyser(); x.Approvals = new List <Approval>(); y.Approvals = new List <Approval>(); xApproval1.ApprovalMembers = new List <ApprovalMember>(); xApproval2.ApprovalMembers = new List <ApprovalMember>(); xApproval1.ApprovalMembers.Add(xApprovalMember1); xApproval2.ApprovalMembers.Add(xApprovalMember2); xApprovalMember1.CostUser = xCostUser1; xApprovalMember2.CostUser = xCostUser2; xCostUser1.Id = Guid.NewGuid(); xCostUser2.Id = Guid.NewGuid(); x.Approvals.Add(xApproval1); y.Approvals.Add(xApproval1); y.Approvals.Add(xApproval2); //Act var result = target.GetRemovedApprovers(x, y); //Assert result.Should().NotBeNull(); result.Should().BeEmpty(); }
//Xem bang này có bảng lịch sử clone từ bảng này ra hay không? public static string GetEntityNameHist(string entityName) { if (entityName == ApprovalAccount.EntityName()) { return(ApprovalAccountHist.EntityName()); } if (entityName == ApprovalDealing.EntityName()) { return(ApprovalDealingHist.EntityName()); } if (entityName == ApprovalMember.EntityName()) { return(ApprovalMemberHist.EntityName()); } if (entityName == ApprovalOrder.EntityName()) { return(ApprovalOrderHist.EntityName()); } if (entityName == ApprovalPreRisk.EntityName()) { return(ApprovalPreRiskHist.EntityName()); } if (entityName == ApprovalSystem.EntityName()) { return(ApprovalSystemHist.EntityName()); } if (entityName == AccountTransaction.EntityName()) { return(AccountTransactionHist.EntityName()); } if (entityName == BrokerOrder.EntityName()) { return(BrokerOrderHist.EntityName()); } if (entityName == ExecutionReport.EntityName()) { return(ExecutionReportHist.EntityName()); } if (entityName == OpenPositionDetail.EntityName()) { return(OpenPositionDetailHist.EntityName()); } if (entityName == OpenPosition.EntityName()) { return(OpenPositionHist.EntityName()); } if (entityName == OrderTransaction.EntityName()) { return(OrderTransactionHist.EntityName()); } if (entityName == SpecAccounting.EntityName()) { return(SpecAccountingHist.EntityName()); } if (entityName == SymbolSettlementPrice.EntityName()) { return(SymbolSettlementPriceDaily.EntityName()); } if (entityName == TradingDeal.EntityName()) { return(TradingDealHist.EntityName()); } return(null); }
private static ApprovalMember GetReplacement(CostStageRevision costStageRevision, ApprovalMember removedMember) { foreach (var approval in costStageRevision.Approvals) { if (approval.Type == removedMember.Approval.Type) { foreach (var approvalMember in approval.ApprovalMembers) { if (approvalMember.IsSystemApprover()) { continue; } return(approvalMember); } } } return(null); }
private void SetupPurchaseOrderCost(Cost cost, CostStageRevision latestRevision, CostUser costOwner, Guid previousRevisionId, Guid latestRevisionId, string poNumber) { const string brandApproverGdamUserId = "57e5461ed9563f268ef4f1ta"; const string brandApproverName = "John Smith"; var costId = Guid.NewGuid(); var costOwnerId = Guid.NewGuid(); var projectId = Guid.NewGuid(); var previousStageId = Guid.NewGuid(); var latestStageId = Guid.NewGuid(); var previousRevision = new CostStageRevision(); var previousStage = new CostStage(); var latestStage = new CostStage(); var project = new Project(); var brand = new Brand(); var agency = new Agency(); var country = new Country(); var brandApproval = new Approval(); var brandApprover = new ApprovalMember(); var brandApproverAsCostUser = new CostUser(); previousRevision.CostStage = previousStage; previousRevision.Id = previousRevisionId; previousStage.Id = previousRevision.CostStageId = previousStageId; latestStage.Id = latestRevision.CostStageId = latestStageId; previousStage.Name = CostStages.OriginalEstimate.ToString(); latestStage.Name = CostStages.FinalActual.ToString(); cost.CostStages.AddRange(new[] { previousStage, latestStage }); //China non-Cyclone Agencies should create a notification for non-backup approver when the cost total amount has changed SetupDataSharedAcrossTests(agency, country, cost, latestRevision, project, costOwner, costOwnerId, latestStage, brand, costId, latestRevisionId, projectId, Constants.BudgetRegion.China); brandApproval.ApprovalMembers = new List <ApprovalMember> { brandApprover }; brandApprover.CostUser = brandApproverAsCostUser; brandApproval.Type = ApprovalType.Brand; brandApproverAsCostUser.GdamUserId = brandApproverGdamUserId; brandApproverAsCostUser.FullName = brandApproverName; var approvals = new List <Approval> { brandApproval }; ApprovalServiceMock.Setup(a => a.GetApprovalsByCostStageRevisionId(It.IsAny <Guid>(), true)).ReturnsAsync(approvals); var pgPaymentDetails = new PgPaymentDetails { PoNumber = poNumber }; CostStageServiceMock.Setup(cssm => cssm.GetPreviousCostStage(latestStageId)).Returns(Task.FromResult(previousStage)); CostStageRevisionServiceMock.Setup(csrsm => csrsm.GetLatestRevision(previousStageId)).Returns(Task.FromResult(previousRevision)); CustomObjectDataServiceMock .Setup(codsm => codsm.GetCustomData <PgPaymentDetails>(latestRevisionId, CustomObjectDataKeys.PgPaymentDetails)) .Returns(Task.FromResult(pgPaymentDetails)); CustomObjectDataServiceMock .Setup(codsm => codsm.GetCustomData <PgPaymentDetails>(previousRevisionId, CustomObjectDataKeys.PgPaymentDetails)) .Returns(Task.FromResult(pgPaymentDetails)); }