public async Task CanCancelETransfer() { var fileId = TestData.EvacuationFileId; var registrantId = TestData.ContactId; var uniqueId = TestHelper.GenerateNewUniqueId(TestData.TestPrefix); var email = $"{uniqueId}[email protected]"; var support = new IncidentalsSupport { TotalAmount = 100, SupportDelivery = new Interac { NotificationEmail = email, ReceivingRegistrantId = registrantId, } }; support.From = DateTime.UtcNow; support.To = DateTime.UtcNow.AddDays(3); support.IssuedBy = new TeamMember { DisplayName = "autotest R" }; support.IncludedHouseholdMembers = TestData.HouseholdMemberIds.TakeRandom(); await manager.Handle(new ProcessSupportsCommand { FileId = fileId, Supports = new[] { support }, RequestingUserId = TestData.Tier4TeamMemberId }); var supportId = (await manager.Handle(new SearchSupportsQuery { FileId = fileId })).Items .Where(s => s.SupportDelivery is Interac i && i.NotificationEmail != null && i.NotificationEmail.StartsWith(uniqueId)).ShouldHaveSingleItem().Id; await manager.Handle(new CancelSupportCommand { FileId = fileId, SupportId = supportId, Reason = "need to cancel" }); var updatedSupport = (await manager.Handle(new SearchSupportsQuery { FileId = fileId })).Items.Single(s => s.Id == supportId); updatedSupport.Status.ShouldBe(SupportStatus.Cancelled); }
public async Task <IEnumerable <SupportFlag> > CheckCompliance(Support support) { await Task.CompletedTask; var approverName = support switch { ClothingSupport s => s.ApproverName, IncidentalsSupport s => s.ApproverName, FoodGroceriesSupport s => s.ApproverName, _ => null }; if (!string.IsNullOrEmpty(approverName)) { return new[] { new AmountExceededSupportFlag { Approver = approverName } } } ; return(Array.Empty <SupportFlag>()); } } }
public static IEnumerable <Support> CreateSupports(string prefix, EvacuationFile file) { var householdMemberIds = file.HouseholdMembers.Select(m => m.Id).ToArray(); var from = DateTime.UtcNow.AddDays(-1); var to = DateTime.UtcNow.AddDays(2); var supports = new Support[] { new ClothingSupport { TotalAmount = RandomAmount() }, new IncidentalsSupport { TotalAmount = RandomAmount() }, new FoodGroceriesSupport { TotalAmount = RandomAmount() }, new FoodRestaurantSupport { TotalAmount = RandomAmount() }, new LodgingBilletingSupport() { NumberOfNights = RandomInt() }, new LodgingGroupSupport { NumberOfNights = RandomInt(), FacilityCommunityCode = file.EvacuatedFromAddress.Community }, new LodgingHotelSupport { NumberOfNights = RandomInt(), NumberOfRooms = RandomInt() }, new TransportationOtherSupport { TotalAmount = RandomAmount() }, new TransportationTaxiSupport { FromAddress = "test", ToAddress = "test" }, }; Func <Support, SupportDelivery> createSupportDelivery = sup => sup switch { IncidentalsSupport s => new Interac { NotificationEmail = $"{prefix}[email protected]", ReceivingRegistrantId = file.PrimaryRegistrantId }, ClothingSupport s => new Interac { NotificationEmail = $"{prefix}[email protected]", ReceivingRegistrantId = file.PrimaryRegistrantId }, _ => new Referral { IssuedToPersonName = $"{prefix}-unitest" }, }; foreach (var support in supports) { support.FileId = file.Id; support.IncludedHouseholdMembers = householdMemberIds.TakeRandom(); support.From = from; support.To = to; support.SupportDelivery = createSupportDelivery(support); } return(supports); }