コード例 #1
0
        public void IsValidToAccecssPostQualificationCheckingTender_WithNotAssignedCommittee_AuthorizationException()
        {
            MockUser();
            var tender = new TenderDefault().GetGeneralTender();

            tender.SetTenderType((int)Enums.TenderType.PostQualification);
            tender.UpdateCommittees(1, null, 1, 1, 1, 1, null, 1);

            Assert.Throws <AuthorizationException>(() =>
                                                   _Sut.IsValidToAccecssPostQualificationCheckingTender(tender,
                                                                                                        new List <string>()
            {
                RoleNames.OffersCheckManager, RoleNames.OffersPurchaseManager
            }));
        }
コード例 #2
0
        IsValidToSendQualificationForApprovement_WithCheckingDateLessThanPresentationDate_ThrowsBusinessException()
        {
            var tender = new TenderDefault().GetGeneralTender();

            tender.UpdateTenderDates(DateTime.Now.AddDays(1), DateTime.Now.AddDays(3), DateTime.Now,
                                     DateTime.Now.AddDays(2), null, null, null, null,
                                     null, null, null,
                                     null, null);
            tender.UpdateTenderStatus(Enums.TenderStatus.Established, "", 1221, Enums.TenderActions.ExtenedTenderDates);

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToSendQualificationForApprovement(tender));

            Assert.Equal("تاريخ فحس التاهيل يجب أن يكون أكبر من اخر موعد لاستلام العروض", e.Result.Message);
        }
コード例 #3
0
        public async Task ApprovePostQualification_WithQualificationId_UpdateQualificationStatusToBeApproved(int tenderId, string agencyCode, string verficationCode)
        {
            #region Arrange
            MockUser();
            var tender = new TenderDefault().GetGeneralTender();
            _moqQualificationQueries.Setup(x => x.GetPostQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            _moqQualificationCommands.Setup(x => x.UpdatePreQualificationAsync(tender))
            .Returns(() => Task.FromResult <Tender>(tender));
            #endregion

            var result = await _sut.ApprovePostQualification(tenderId, agencyCode, verficationCode, new List <string>());

            Assert.Equal((int)Enums.TenderStatus.QualificationCommitteeApproval, result.TenderStatusId);
        }
コード例 #4
0
        public async Task IsValidToSendQualificationForApprovement_WithAnyDateLessThanToday_ThrowsBusinessException()
        {
            var tender = new TenderDefault().GetGeneralTender();

            tender.UpdateTenderDates(DateTime.Now, DateTime.Now.AddDays(-1), DateTime.Now, DateTime.Now, null, null,
                                     null, null,
                                     null, null, null,
                                     null, null);
            tender.UpdateTenderStatus(Enums.TenderStatus.Established, "", 1221, Enums.TenderActions.ExtenedTenderDates);

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToSendQualificationForApprovement(tender));

            Assert.Equal(Resources.QualificationResources.ErrorMessages.QualificationDateMustBelargeThanToday,
                         e.Result.Message);
        }
コード例 #5
0
        public async Task IsValidToApproveQualification_WithPassedDate_ThrowsBusinessException()
        {
            var tender = new TenderDefault().GetGeneralTender();

            tender.UpdateTenderDates(DateTime.Now, DateTime.Now.AddDays(-1), DateTime.Now, DateTime.Now, null, null,
                                     null, null,
                                     null, null, null,
                                     null, null);
            tender.UpdateTenderStatus(Enums.TenderStatus.Pending, "", 1221, Enums.TenderActions.ExtenedTenderDates);

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToApproveQualification(tender));

            Assert.Equal(Resources.QualificationResources.ErrorMessages.IsValidQualificationDateForApprovement,
                         e.Result.Message);
        }
コード例 #6
0
        public async Task ReopenPostQualification_WithQualificationId_UpdateQualificationStatusToBeUnderEstablishing(int tenderId, string agencyCode)
        {
            #region Arrange
            MockUser();
            var tender = new TenderDefault().GetGeneralTender();
            _moqQualificationQueries.Setup(x => x.GetPostQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            _moqQualificationCommands.Setup(x => x.UpdatePreQualificationAsync(tender))
            .Returns(() => Task.FromResult <Tender>(tender));
            #endregion

            var result =
                await _sut.ReopenPostQualification(tenderId, agencyCode);

            Assert.Equal((int)Enums.TenderStatus.Established, result.TenderStatusId);
        }
コード例 #7
0
        public async Task GetPostQualificationDetailsForChecking_WithQualificationId_ReturnesPreQualificationBasicModel(int tenderId, int userId)
        {
            #region Arrange
            MockUser();
            var tender = new TenderDefault().GetGeneralTender();
            tender.UpdateTenderStatus(Enums.TenderStatus.Approved, "", 1221, Enums.TenderActions.Approve);
            _moqQualificationQueries.Setup(x => x.GetQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            _moqQualificationQueries.Setup(x => x.GetQualificationForCheckPostQualificationByQualificationId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <List <string> >()))
            .Returns(() => Task.FromResult <PreQualificationBasicDetailsModel>(new PreQualificationBasicDetailsModel()));
            #endregion

            var result =
                await _sut.GetPostQualificationDetailsByIdForChecking(tenderId, userId, new List <string>());

            Assert.IsType <PreQualificationBasicDetailsModel>(result);
        }
コード例 #8
0
        public async Task SendPostQualificationToApproveWithIdUpdateQualificationStatusToBeWaitingApproval(
            int preQualificationId)
        {
            #region Arrange
            var tender = new TenderDefault().GetGeneralTender();
            MockUser();
            _moqQualificationQueries.Setup(x => x.GetPostQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            MockUser();
            _moqQualificationCommands.Setup(x => x.UpdatePreQualificationAsync(tender))
            .Returns(() => Task.FromResult <Tender>(tender));
            #endregion

            var result = await _sut.SendPostQualificationToApprove(preQualificationId);

            Assert.Equal((int)Enums.TenderStatus.Pending, result.TenderStatusId);
        }
コード例 #9
0
        public async Task IsValidToApprovePreQualificationFromCommitteeManager_WithPassedDate_ThrowsBusinessException(
            string agencyCode)
        {
            var tender = new TenderDefault().GetGeneralTender();

            tender.UpdateTenderDates(DateTime.Now, DateTime.Now.AddDays(-1), DateTime.Now, DateTime.Now, null, null,
                                     null, null,
                                     null, null, null,
                                     null, null);
            tender.UpdateTenderStatus(Enums.TenderStatus.PendingQualificationCommitteeManagerApproval, "", 1221,
                                      Enums.TenderActions.ExtenedTenderDates);

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToApprovePreQualificationFromCommitteeManager(tender, agencyCode));

            Assert.Equal(Resources.QualificationResources.Messages.CantApprovePresentaionDatePassed, e.Result.Message);
        }
コード例 #10
0
        public async Task RejectCheckPostQualification_WithQualificationId_UpdateStatusToRejectedChecking(int tenderId,
                                                                                                          string rejectionReason)
        {
            #region Arrange

            MockUser();
            var tender = new TenderDefault().GetGeneralTender();
            tender.UpdateTenderStatus(Enums.TenderStatus.Approved, "", 1221, Enums.TenderActions.Approve);
            _moqQualificationQueries.Setup(x => x.GetPostQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            _moqQualificationCommands.Setup(qualComm => qualComm.UpdateAsync(tender))
            .Returns(() => Task.FromResult(tender));
            #endregion

            var result = await _sut.RejectCheckPostQualificationOffers(tenderId, rejectionReason, new List <string>());

            Assert.Equal((int)Enums.TenderStatus.DocumentCheckRejected, result.TenderStatusId);
        }
コード例 #11
0
        IsValidToSendQualificationForApprovementFromCommitteeManager_WithPresentationDateLessThanEnquiryDate_ThrowsBusinessException()
        {
            var tender = new TenderDefault().GetGeneralTender();

            tender.SetPointToPassToQualification(7, 40, 30, 1);

            tender.UpdateTenderDates(DateTime.Now.AddDays(2), DateTime.Now.AddDays(1), DateTime.Now,
                                     DateTime.Now.AddDays(3), null, null, null, null,
                                     null, null, null,
                                     null, null);
            tender.UpdateTenderStatus(Enums.TenderStatus.QualificationUnderEstablishingFromCommittee, "", 1221,
                                      Enums.TenderActions.ExtenedTenderDates);

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToSendQualificationForApprovementFromCommitteeManager(tender));

            Assert.Equal("اخر موعد تقديم فحص التاهيل يجب أن يكون أكبر من  اخر موعد لاستلام استفسارات",
                         e.Result.Message);
        }
コード例 #12
0
        public async Task Should_SendFinalAwardedTendersToEmarketPlace_Return_False()
        {
            Tender tender = new TenderDefault().GetGeneralTender();

            tender.SetTenderReceivedOffers(new OfferDefaults().GetOfferList());

            List <Tender> tenders = new List <Tender>()
            {
                tender
            };

            _tenderJobQueires.Setup(x => x.GetAllFinalAwardedTendersForEmarketPlace()).Returns(() =>
            {
                return(Task.FromResult <List <Tender> >(tenders));
            });

            EmarketPlaceRequest emarketPlaceRequest = new EmarketPlaceRequest()
            {
                FormId = 1, TableId = 1
            };

            List <EmarketPlaceRequest> emarketPlaceRequests = new List <EmarketPlaceRequest>()
            {
                emarketPlaceRequest
            };

            _tenderJobQueires.Setup(x => x.GetAwardedSupplierQuantityTableItemsValue(It.IsAny <List <int> >())).Returns(() =>
            {
                return(Task.FromResult <List <EmarketPlaceRequest> >(emarketPlaceRequests));
            });

            ApiResponse <List <EmarketPlaceResponse> > apiResponse = new ApiResponse <List <EmarketPlaceResponse> >();

            _templatesProxy.Setup(x => x.GetEmarketPlace(It.IsAny <List <EmarketPlaceRequest> >())).Returns(() =>
            {
                return(Task.FromResult <ApiResponse <List <EmarketPlaceResponse> > >(apiResponse));
            });

            await _sut.SendFinalAwardedTendersToEmarketPlace();

            _genericCommandRepository.Verify(x => x.SaveAsync(), Times.Once);
        }
コード例 #13
0
        public async Task ApprovePostQualificationChecking_WithQualificationId_HitUpdateQualificationOnce(int tenderId)
        {
            #region Arrange
            MockUser();
            var tender = new TenderDefault().GetGeneralTender();
            List <QualificationFinalResult> qualificationFinalResults = new List <QualificationFinalResult>()
            {
                new QualificationFinalResult(1, "101010", 7, 14),
                new QualificationFinalResult(1, "10150010", 7, 15)
            };
            tender.UpdateTenderStatus(Enums.TenderStatus.Approved, "", 1221, Enums.TenderActions.Approve);
            _moqQualificationQueries.Setup(x => x.GetQualificationById(It.IsAny <int>()))
            .Returns(() => Task.FromResult <Tender>(tender));
            _moqQualificationQueries.Setup(x => x.GetSupplierResultForQualification(It.IsAny <int>()))
            .Returns(() => qualificationFinalResults);
            #endregion

            await _sut.ApprovePostQualificationChecking(tenderId, new List <string>(){ RoleNames.OffersCheckManager });

            _moqQualificationCommands.Verify(com => com.UpdateAsync(It.IsAny <Tender>()), Times.Once);
        }
コード例 #14
0
        public async Task IsValidToAcceptQualificationFromCommitteSecrtar_WithWrongStatus_ThrowsBusinessException()
        {
            #region Arrange

            var tender = new TenderDefault().GetGeneralTender();
            tender.UpdatePreQualificationCommittees(4, 1, 1, 1);
            _moqHttpContextAccessor.Setup(context => context.HttpContext.User.Claims).Returns(() =>
                                                                                              new List <Claim>()
            {
                new Claim(IdentityConfigs.Claims.CommitteeId, "1"),
                new Claim(IdentityConfigs.Claims.SelectedGovAgency, "AgencyName,022001000000")
            });

            #endregion

            var e = Assert.ThrowsAsync <BusinessRuleException>(async() =>
                                                               await _Sut.IsValidToAcceptQualificationFromCommitteSecrtary(tender));

            Assert.Equal(Resources.QualificationResources.ErrorMessages.NotAllaowedToApproveQyalification,
                         e.Result.Message);
        }
コード例 #15
0
        public void IsValidToRejectCheckTender_WithWrongStatus_ThrowsBusinessException()
        {
            #region Arrange

            var tender = new TenderDefault().GetGeneralTender();
            tender.UpdatePreQualificationCommittees(4, 1, 1, 1);
            var expectedMessage = Resources.TenderResources.ErrorMessages.CanNotProceedStatusIs + " " +
                                  GetStatusName(Enums.TenderStatus.DocumentCheckPending);
            _moqHttpContextAccessor.Setup(x => x.HttpContext.User.Claims).Returns(() =>
            {
                return(new Claim[1] {
                    new Claim(IdentityConfigs.Claims.CommitteeId, "1")
                });
            });

            #endregion

            var e = Assert.Throws <BusinessRuleException>(() =>
                                                          _Sut.IsValidToRejectCheckTender(tender, new List <string>()));

            Assert.Equal(expectedMessage, e.Message);
        }
コード例 #16
0
        public async Task ShouldAddTenderToSupplierTendersFavouriteList(int tenderId, string cr)
        {
            var tender = new TenderDefault().GetGeneralTender();
            FavouriteSupplierTender favouriteSupplierTender = new FavouriteSupplierTender(tenderId, cr);

            _moqQualificationQueries.Setup(x => x.GetPreQualificationDetailsById(tenderId))
            .Returns(() =>
            {
                return(Task.FromResult(tender));
            });
            _moqQualificationCommands.Setup(c => c.CreateTenderFavouriteAsync(favouriteSupplierTender)).Returns(() =>
            {
                return(Task.FromResult(favouriteSupplierTender));
            });



            var result = await _sut.AddTenderToSupplierTendersFavouriteList(tenderId, cr);


            //_moqQualificationCommands.Verify(x => x.CreateTenderFavouriteAsync(favouriteSupplierTender), Times.Once);
            Assert.IsType <bool>(result);
        }
コード例 #17
0
        public void IsValidToStartCheckingTender_WithWrongStatus_ThrowsBusinessException()
        {
            #region Arrange

            var tender = new TenderDefault().GetGeneralTender();
            tender.UpdatePreQualificationCommittees(4, 1, 1, 1);
            var expectedMessage = Resources.QualificationResources.ErrorMessages.QualificationCheckingStatus +
                                  Resources.TenderResources.Messages.ResourceManager.GetString(
                nameof(Enums.TenderStatus.Approved));

            _moqHttpContextAccessor.Setup(context => context.HttpContext.User.Claims).Returns(() =>
                                                                                              new List <Claim>()
            {
                new Claim(IdentityConfigs.Claims.CommitteeId, "1")
            });

            #endregion

            var e = Assert.Throws <BusinessRuleException>(() =>
                                                          _Sut.IsValidToStartCheckingTender(tender));

            Assert.Equal(expectedMessage, e.Message);
        }
コード例 #18
0
ファイル: BillDefaults.cs プロジェクト: lulzzz/UITest-POC
        public BillInfo GetBillInfoDataForInvitation()
        {
            BillInfoModel billInfoModel = new BillInfoModel()
            {
                AmountDue           = _amountDue,
                DueDate             = _dueDt,
                ExpDate             = _expiryDate,
                AgencyCode          = _agencyCode,
                ActionStatus        = _actionStatus,
                ChapterNumber       = _chapterNumber,
                NumOfSubSections    = _sectionNumber,
                SequenceNumber      = _sequanceNumber,
                NumOfSubDepartments = _subdepartmentNumber,
                SectionId           = _subsectionsNumber,
                BankBranchId        = _bankbranch,
                BillInvoiceNumber   = _billInvoicenumber,
                BillStatusId        = _billStatusId,
                InvitationId        = _invitationid,
                BillReferenceInfo   = _billreferenceInfo,
                CreatedBy           = _createdBy,
                CreatedAt           = _createdAt,
                PurchaseDate        = _purchaseDate,
            };
            var invitation = new Invitation(_cr, Enums.InvitationStatus.Approved, Enums.InvitationRequestType.Invitation, true);
            var tender     = new TenderDefault().GetGeneralTender();

            invitation.Test_AddTender(tender);
            PropertyInfo supplierProp = invitation.GetType().GetProperty("Supplier");
            Supplier     sub          = new Supplier(_cr, "Supplier Name", new List <UserNotificationSetting>());

            supplierProp.SetValue(invitation, sub);
            var billInfo = new BillInfo(billInfoModel);

            billInfo.Test_AddInvitation(invitation);
            return(billInfo);
        }
コード例 #19
0
        public List <AgencyCommunicationRequest> GetAgencyCommunicationRequestsForDirectPurchase()
        {
            Tender tender = new TenderDefault().GetNewDirectPurchasePrivate();
            List <AgencyCommunicationRequest> generalAgencyCommunicationRequests = new List <AgencyCommunicationRequest>();
            var communicationRequest = new AgencyCommunicationRequest(agencyRequestId, tenderId, agencyRequestTypeId, statusId, requestedByRoleName);

            communicationRequest.AddTender(tender);
            communicationRequest.UpdatePlaintAgencyCommunicationRequest(1, "no");
            communicationRequest.UpdateAgencyCommunicationRequestStatus(1, "");
            communicationRequest.UpdateAgencyCommunicationPlaintRequestStatus(1, 1, null, "", "");
            AgencyCommunicationPlaintStatus PlaintAcceptanceStatus = new AgencyCommunicationPlaintStatus();

            typeof(AgencyCommunicationPlaintStatus).GetProperty(nameof(AgencyCommunicationPlaintStatus.Name)).SetValue(PlaintAcceptanceStatus, "name");

            typeof(AgencyCommunicationRequest).GetProperty(nameof(AgencyCommunicationRequest.PlaintAcceptanceStatus)).SetValue(communicationRequest, PlaintAcceptanceStatus);

            generalAgencyCommunicationRequests.Add(communicationRequest);

            var communicationRequest2 = new AgencyCommunicationRequest(2, 2, agencyRequestTypeId, statusId, requestedByRoleName);

            communicationRequest2.AddTender(tender);
            generalAgencyCommunicationRequests.Add(communicationRequest2);
            return(generalAgencyCommunicationRequests);
        }
コード例 #20
0
        public async Task Should_SendFinalAwardedTendersToEmarketPlace_Return_True()
        {
            Tender tender = new TenderDefault().GetGeneralTender();

            tender.SetTenderReceivedOffers(new OfferDefaults().GetOfferList());

            List <Tender> tenders = new List <Tender>()
            {
                tender
            };

            _tenderJobQueires.Setup(x => x.GetAllFinalAwardedTendersForEmarketPlace()).Returns(() =>
            {
                return(Task.FromResult <List <Tender> >(tenders));
            });

            EmarketPlaceRequest emarketPlaceRequest = new EmarketPlaceRequest()
            {
                FormId = 1, TableId = 1
            };

            List <EmarketPlaceRequest> emarketPlaceRequests = new List <EmarketPlaceRequest>()
            {
                emarketPlaceRequest
            };

            _tenderJobQueires.Setup(x => x.GetAwardedSupplierQuantityTableItemsValue(It.IsAny <List <int> >())).Returns(() =>
            {
                return(Task.FromResult <List <EmarketPlaceRequest> >(emarketPlaceRequests));
            });

            EmarketPlaceResponse emarketPlaceResponse = new EmarketPlaceResponse()
            {
                FormId = 1, ColumnId = 1, ColumnTypeId = (int)Enums.ColumnValueEnum.Description
            };
            List <EmarketPlaceResponse> emarketPlaceResponses = new List <EmarketPlaceResponse>()
            {
                emarketPlaceResponse
            };
            ApiResponse <List <EmarketPlaceResponse> > apiResponse = new ApiResponse <List <EmarketPlaceResponse> >()
            {
                Data = emarketPlaceResponses
            };

            _templatesProxy.Setup(x => x.GetEmarketPlace(It.IsAny <List <EmarketPlaceRequest> >())).Returns(() =>
            {
                return(Task.FromResult <ApiResponse <List <EmarketPlaceResponse> > >(apiResponse));
            });

            SRMFrameworkAgreementManageModel sRMFramework = new SRMFrameworkAgreementManageModel();

            _tenderJobQueires.Setup(x => x.FillVendorProducts(It.IsAny <List <int> >(), It.IsAny <List <EmarketPlaceResponse> >())).Returns(() =>
            {
                return(Task.FromResult <SRMFrameworkAgreementManageModel>(sRMFramework));
            });

            _sRMFrameworkAgreementManageProxy.Setup(x => x.SRMFrameworkAgreementManage(It.IsAny <SRMFrameworkAgreementManageModel>())).Returns(() =>
            {
                return(Task.FromResult <bool>(true));
            });

            await _sut.SendFinalAwardedTendersToEmarketPlace();

            _genericCommandRepository.Verify(x => x.SaveAsync(), Times.Once);
        }