Exemple #1
0
        public void Scheduling_Appointment_HappyPath()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedProvider = providerDomain.GetProvider(1);
            var savedPatient  = patientDomain.GetPatient(1);
            var savedService  = serviceDomain.GetService(1);

            var appointment = new Appointment
            {
                Patient                  = savedPatient,
                Provider                 = savedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);

            //Assert
            Assert.IsTrue(savedAppointment.Id != 0);
        }
Exemple #2
0
        public void Scheduling_Appointment_For_Unqualified_Provider_Should_Fail()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedService        = serviceDomain.GetService(1);
            var savedPatient        = patientDomain.GetPatient(1);
            var unqualifiedProvider = new Provider
            {
                Name = "Dr Quack.",
                CertificationLevel = 1
            };

            unqualifiedProvider = providerDomain.CreateProvider(unqualifiedProvider);

            var appointment = new Appointment
            {
                Patient                  = savedPatient,
                Provider                 = unqualifiedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);
        }
Exemple #3
0
        public void Scheduling_Appointment_For_Underage_Patients_Should_Fail()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedProvider   = providerDomain.GetProvider(1);
            var savedService    = serviceDomain.GetService(1);
            var underagePatient = new Patient
            {
                Age  = 15,
                Name = "Lion"
            };

            underagePatient = patientDomain.CreatePatient(underagePatient);

            var appointment = new Appointment
            {
                Patient                  = underagePatient,
                Provider                 = savedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);
        }
Exemple #4
0
        public void Scheduling_Appointment_After_Clinic_Hours_Should_Fail()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedProvider = providerDomain.GetProvider(1);
            var savedPatient  = patientDomain.GetPatient(1);
            var savedService  = serviceDomain.GetService(1);

            var appointment = new Appointment
            {
                Patient                  = savedPatient,
                Provider                 = savedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 16:00:01.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);
        }
Exemple #5
0
        public void Scheduling_Appointment_For_Provider_More_Than_Five_Minutes_After_Previous_Booking_But_Not_Overlapping_Next_Booking_Should_Pass()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedProvider     = providerDomain.GetProvider(1);
            var savedService      = serviceDomain.GetService(1);
            var savedPatient      = patientDomain.GetPatient(1);
            var savedShortService = serviceDomain.GetService(2);


            var appointment = new Appointment
            {
                Patient                  = savedPatient,
                Provider                 = savedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);

            var nextAppointment = new Appointment
            {
                Patient  = savedPatient,
                Provider = savedProvider,
                Service  = savedService,
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000").AddHours(savedAppointment.PlannedDuration.Hours + 1),
                ReasonForVisit           = "A New Brain"
            };

            var savedNextAppointment = appointmentDomain.SetAppointment(nextAppointment);

            var inBetweenAppointment = new Appointment
            {
                Patient  = savedPatient,
                Provider = savedProvider,
                Service  = savedShortService,
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000").AddHours(savedAppointment.PlannedDuration.Hours).AddMinutes(6),
                ReasonForVisit           = "I just want to go home"
            };

            var savedInBetweenAppointment = appointmentDomain.SetAppointment(inBetweenAppointment);

            Assert.IsTrue(savedInBetweenAppointment.Id != 0);
        }
Exemple #6
0
        public void Scheduling_Appointment_For_Provider_Less_Than_Five_Minutes_After_Previous_Booking_Should_Fail()
        {
            //Arrange
            Setup();
            var providerDomain    = new ProviderDomain(new ProvidersRepository());
            var patientDomain     = new PatientDomain(new PatientsRepository());
            var serviceDomain     = new ServiceDomain(new ServicesRepository());
            var appointmentDomain = new AppointmentsDomain(new AppointmentsRepository());

            var savedProvider = providerDomain.GetProvider(1);
            var savedService  = serviceDomain.GetService(1);
            var savedPatient  = patientDomain.GetPatient(1);

            var appointment = new Appointment
            {
                Patient                  = savedPatient,
                Provider                 = savedProvider,
                Service                  = savedService,
                ReasonForVisit           = "There's no place like home",
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000"),
            };

            //Act
            var savedAppointment = appointmentDomain.SetAppointment(appointment);

            var overlappingAppointment = new Appointment
            {
                Patient  = savedPatient,
                Provider = savedProvider,
                Service  = savedService,
                RequestedAppointmentDate = DateTime.Parse("2000/01/01 09:00:00.000").AddHours(savedAppointment.PlannedDuration.Hours).AddMinutes(5),
                ReasonForVisit           = "A New Brain"
            };

            var savedOverlappingAppointment = appointmentDomain.SetAppointment(overlappingAppointment);
        }