protected CostStageRevisionStatusChanged GetCostRevisionStatusChanged(CostStageRevisionStatus status) { return(new CostStageRevisionStatusChanged { AggregateId = Guid.NewGuid(), Status = status, TimeStamp = DateTime.UtcNow, CostStageRevisionId = Guid.NewGuid() }); }
private CostStageRevisionStatusChanged GetStatusChangedEvent(CostStageRevisionStatus status) { return(new CostStageRevisionStatusChanged { AggregateId = Guid.NewGuid(), CostStageRevisionId = _costStageRevisionId, Status = status, BuType = BuType.Pg, TimeStamp = DateTime.UtcNow }); }
protected async Task SetCostStatus(Cost cost, CostStageRevisionStatus status) { var dbCost = await EFContext.Cost .Include(c => c.LatestCostStageRevision) .FirstOrDefaultAsync(c => c.Id == cost.Id); EFContext.Entry(dbCost).Reload(); dbCost.Status = status; dbCost.LatestCostStageRevision.Status = status; await EFContext.SaveChangesAsync(); }
private CostStageRevisionStatusChanged GetStatusChangedEvent(CostStageRevisionStatus status) { var evnt = new CostStageRevisionStatusChanged { AggregateId = Guid.NewGuid(), CostStageRevisionId = _currentCostStageRevisionId, Status = status, TimeStamp = DateTime.UtcNow }; _purchaseOrderServiceMock.Setup(po => po.NeedToSendPurchaseOrder(evnt)).ReturnsAsync(true); return(evnt); }
public async Task Notify_whenNonCostApprovalStatusChanged_shouldNotNotifyPaperpusher(CostStageRevisionStatus status) { // Arrange var statusChanged = GetStatusChangedEvent(status); statusChanged.CostStageRevisionId = Guid.NewGuid(); _purchaseOrderServiceMock.Setup(a => a.GetPurchaseOrder(It.IsAny <CostStageRevisionStatusChanged>())) .ReturnsAsync(new PgPurchaseOrder { CostNumber = "CostNumber", PoNumber = "poNumber", PaymentAmount = 0 }); // Act await _notifier.Notify(statusChanged); // Assert _paperpusherClientMock.Verify(p => p.SendMessage(It.IsAny <Guid>(), It.IsAny <object>(), It.IsAny <string>()), Times.Never); }
public async Task Notify_whenCostApprovalStatusChanged_shouldNotifyPaperpusher(CostStageRevisionStatus status) { // Arrange var statusChanged = GetStatusChangedEvent(status); _paperpusherClientMock.Setup(a => a.SendMessage(It.IsAny <Guid>(), It.IsAny <PgPurchaseOrder>(), It.IsAny <string>())) .Returns(Task.FromResult(true)); _purchaseOrderServiceMock.Setup(b => b.GetPurchaseOrder(It.IsAny <CostStageRevisionStatusChanged>())).ReturnsAsync(new PgPurchaseOrder { PaymentAmount = 100 }); // Act await _notifier.Notify(statusChanged); // Assert _paperpusherClientMock.Verify(p => p.SendMessage(It.IsAny <Guid>(), It.IsAny <object>(), It.IsAny <string>()), Times.Once); }
public async Task CanEditIONumber_When__Trafficking_FAStageAndStatusIsNotDraft_Should_ReturnFalse(CostStageRevisionStatus status) { // Arrange var costStageObj = new CostStage { Key = CostStages.OriginalEstimate.ToString() }; var cost = new Cost { Id = Guid.NewGuid(), CostStages = new List <CostStage> { costStageObj }, LatestCostStageRevision = new CostStageRevision { CostStage = costStageObj }, Status = status, CostType = CostType.Trafficking }; _efContext.Add(cost); _efContext.SaveChanges(); // Act var canEditIONumber = await _pgRuleService.CanEditIONumber(cost.Id); // Assert canEditIONumber.Should().BeFalse(); }
public async Task GrNumbers_whenMultipleVresionOfCurrentStageAndStageIsNotPendingCancellation_shouldReturnEmptyArray(CostStageRevisionStatus status) { // Arrange var costSubmitted = GetCostRevisionStatusChanged(status); var costId = costSubmitted.AggregateId; var cost = SetupPurchaseOrderView(costId); var costStage = cost.LatestCostStageRevision.CostStage; var revision1 = cost.LatestCostStageRevision; var grNumber1 = "gr-number-1"; var revision2 = new CostStageRevision { Id = Guid.NewGuid() }; costStage.CostStageRevisions.Add(revision2); var grNumber2 = "gr-number-1"; _customDataServiceMock.Setup(cd => cd.GetCustomData <PgPurchaseOrderResponse>( It.Is <IEnumerable <Guid> >(ids => ids.Contains(revision1.Id) && ids.Contains(revision2.Id)), CustomObjectDataKeys.PgPurchaseOrderResponse)) .ReturnsAsync(new List <PgPurchaseOrderResponse> { new PgPurchaseOrderResponse { GrNumber = grNumber1 }, new PgPurchaseOrderResponse { GrNumber = grNumber2 } }); // Act var purchase = await PgPurchaseOrderService.GetPurchaseOrder(costSubmitted); // Assert purchase.GrNumbers.Should().NotBeNull(); purchase.GrNumbers.Should().HaveCount(0); }
public async Task ReturnNull_WhenPreviousRevisionOfTheSameStage_AndStatusIsNotApprovedOrPendingApproval(CostStageRevisionStatus status) { // Arrange var costStageKey = CostStages.FirstPresentation.ToString(); var costId = Guid.NewGuid(); var createdById = Guid.NewGuid(); var revision1 = new CostStageRevision { Id = Guid.NewGuid(), CreatedById = createdById, Created = DateTime.UtcNow, Status = status }; var revision2 = new CostStageRevision { Id = Guid.NewGuid(), CreatedById = createdById, Created = DateTime.UtcNow.AddMilliseconds(1) }; var costStage = new CostStage { Key = costStageKey, Cost = new Cost { Id = costId }, CostStageRevisions = new List <CostStageRevision> { revision1, revision2 } }; EFContext.CostStage.Add(costStage); await EFContext.SaveChangesAsync(); // Act var previousRevision = await Service.GetPreviousRevision(revision2.Id); // Assert previousRevision.Should().BeNull(); }