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 })); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }