protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureTestServices(services => { Mock <IRegistrationNotifier> registrationNotifier = new Mock <IRegistrationNotifier>(); string connectionString = CreateConnectionStringFromEnvironment(); var patientAccountRepository = new PatientAccountSqlRepository(new UserSqlTestContextFactory(connectionString)); var patientAccountService = new PatientAccountService(patientAccountRepository); var patientRegistrationService = new PatientRegistrationService(patientAccountService, registrationNotifier.Object); services.Add(new ServiceDescriptor(typeof(IPatientRegistrationService), patientRegistrationService)); }); }
private void AddServices(IServiceCollection services) { var cityRepository = new CitySqlRepository(GetContextFactory()); var cityService = new CityService(cityRepository); services.Add(new ServiceDescriptor(typeof(CityService), cityService)); var countryRepository = new CountrySqlRepository(GetContextFactory()); var countryService = new CountryService(countryRepository); services.Add(new ServiceDescriptor(typeof(CountryService), countryService)); var doctorRepositry = new DoctorSqlRepository(GetContextFactory()); var doctorService = new DoctorService(doctorRepositry); services.Add(new ServiceDescriptor(typeof(DoctorService), doctorService)); var patientRepository = new PatientSqlRepository(GetContextFactory()); var patientAccountRepository = new PatientAccountSqlRepository(GetContextFactory()); var registrationNotifier = new RegistrationNotifier( "http://" + Environment.GetEnvironmentVariable("PSW_API_GATEWAY_HOST") + ":" + Environment.GetEnvironmentVariable("PSW_API_GATEWAY_PORT") + "/api/patient/activate/"); var patientAccountService = new PatientAccountService(patientAccountRepository); var patientRegistrationService = new PatientRegistrationService(patientAccountService, registrationNotifier); var patientService = new PatientService(patientRepository, patientAccountRepository); var specialtyRepository = new SpecialtySqlRepository(GetContextFactory()); var specialtyService = new SpecialtyService(specialtyRepository); // Auth var userAccountRepository = new UserAccountSqlRepository(GetContextFactory()); var credentialService = new CredentialsService(userAccountRepository, GetJwtSecretFromEnvironment()); // Advertisement var advertisementRepository = new AdvertisementSqlRepository(GetContextFactory()); var advertisementService = new AdvertisementService(advertisementRepository); services.Add(new ServiceDescriptor(typeof(CredentialsService), credentialService)); services.Add(new ServiceDescriptor(typeof(IPatientAccountService), patientAccountService)); services.Add(new ServiceDescriptor(typeof(IPatientRegistrationService), patientRegistrationService)); services.Add(new ServiceDescriptor(typeof(PatientService), patientService)); services.Add(new ServiceDescriptor(typeof(SpecialtyService), specialtyService)); services.Add(new ServiceDescriptor(typeof(AdvertisementService), advertisementService)); }
public void PersistPatient() { // Arrange var client = new Client(); var patient = new Patient(client); var patientRepository = Mock.Create <IPatientRepository>(Behavior.Strict); Mock.Arrange(() => patientRepository.CreateOrUpdate(patient)).OccursOnce(); var service = new PatientRegistrationService(patientRepository); // Act service.RegisterPatient(patient); // Assert Mock.Assert(patientRepository); }
public void Sends_notification_when_creating_patient() { var mockNotifier = new Mock <IRegistrationNotifier>(); var mockPatientAccountService = new Mock <IPatientAccountService>(); var guid = Guid.NewGuid(); const string email = "*****@*****.**"; const string emailTemplatePath = "/path/to/the/resource"; var patientAccount = CreatePatientAccount(guid, email); mockPatientAccountService.Setup(pa => pa.CreateAccount(patientAccount)).Returns(patientAccount); var patientRegistrationService = new PatientRegistrationService(mockPatientAccountService.Object, mockNotifier.Object); patientRegistrationService.RegisterPatient(patientAccount, emailTemplatePath); mockNotifier.Verify(n => n.SendActivationEmail(patientAccount, "/path/to/the/resource")); }
public void RaiseNewPatientCreatedEvent() { // Arrange var client = new Client(); var patient = new Patient(client); var patientRepository = Mock.Create <IPatientRepository>(); Mock.Arrange(() => patientRepository.CreateOrUpdate(patient)); var service = new PatientRegistrationService(patientRepository); Patient patientReturnedFromEvent = null; service.NewPatientCreated += (o, e) => { patientReturnedFromEvent = e.Patient; }; // Act service.RegisterPatient(patient); // Assert Assert.IsNotNull(patientReturnedFromEvent); }
public PatientRegistrationController() { patientRegistrationService = new PatientRegistrationService(); }