public async void TestCreateAgreement_RegulatedUser(CareSettingType careSetting) { // Arrange var service = CreateService(); var enrollee = new EnrolleeFactory().Generate(); enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting; enrollee.Certifications = new CertificationFactory(enrollee).Generate(1, "default,licence.regulated"); enrollee.AccessAgreementNote = null; TestDb.Has(enrollee); TestDb.Entry(enrollee.Certifications.Single()).Reference(c => c.License).Load(); int expectedAgreementId = 0; switch (careSetting) { case CareSettingType.CommunityPractice: expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <RegulatedUserAgreement>(); break; case CareSettingType.CommunityPharmacy: expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <CommunityPharmacistAgreement>(); break; } // Act await service.CreateEnrolleeAgreementAsync(enrollee.Id); // Assert AssertAgreementGeneration(enrollee, expectedAgreementId); }
public void TestDetermineAgreementType_NoCerts_OneCareSetting(CareSettingType careSetting, AgreementType expectedType) { // Arrange var dto = new AgreementEngineDto { Certifications = new CertificationDto[] { }, CareSettingCodes = new[] { (int)careSetting } }; // Act var determinedType = AgreementEngine.DetermineAgreementType(dto); // Assert Assert.Equal(expectedType, determinedType); }
public async void TestCreateAgreement_Obo(CareSettingType careSetting) { // Arrange var service = CreateService(); var enrollee = new EnrolleeFactory().Generate(); enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting; enrollee.Certifications.Clear(); enrollee.AccessAgreementNote = null; TestDb.Has(enrollee); var expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <OboAgreement>(); // Act await service.CreateEnrolleeAgreementAsync(enrollee.Id); // Assert AssertAgreementGeneration(enrollee, expectedAgreementId); }
public async void TestCreateAgreement_LicencedObo(CareSettingType careSetting) { // Arrange var service = CreateService(); var enrollee = new EnrolleeFactory().Generate(); enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting; enrollee.Certifications = new CertificationFactory(enrollee).Generate(1, "default,licence.nonRegulated"); enrollee.AccessAgreementNote = null; TestDb.Has(enrollee); TestDb.Entry(enrollee.Certifications.Single()).Reference(c => c.License).Load(); var expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <OboAgreement>(); // Act await service.CreateEnrolleeAgreementAsync(enrollee.Id); // Assert AssertAgreementGeneration(enrollee, expectedAgreementId); }
public async Task <Email> RenderProvisionerLinkEmailAsync(IEnumerable <string> recipientEmails, string cc, CareSettingType careSetting, ProvisionerAccessEmailViewModel viewModel) { var template = careSetting switch { CareSettingType.CommunityPharmacy => RazorTemplates.Emails.CommunityPharmacyManager, CareSettingType.HealthAuthority => RazorTemplates.Emails.HealthAuthority, CareSettingType.CommunityPractice => RazorTemplates.Emails.CommunityPractice, _ => throw new ArgumentException($"Could not recognize CareSetting {careSetting} in {nameof(RenderProvisionerLinkEmailAsync)}") }; return(new Email ( from: PrimeEmail, to: recipientEmails, cc: cc, subject: "New Access Request", body: await _razorConverterService.RenderTemplateToStringAsync(template, viewModel) )); }
public bool IsType(CareSettingType type) { return(CareSettingCode == (int)type); }