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>()));
            }
            public async Task ThrowException_WhenNoApprovalsShouldLogWarning()
            {
                // Arrange
                var cost     = MockCost();
                var approvas = new List <Approval>();

                // Act
                await ApprovalService.SubmitApprovals(cost, CostUser, approvas, BuType.Pg);

                // Assert
                LoggerMock.Verify(l => l.Warning(It.IsAny <string>()), Times.Once);
            }