public HomeController()
        {
            IList<Appointment> appointment = new List<Appointment>
            {
                new Appointment { ID = 1, Patient = new Patient { FirstName = "James", LastName = "Waudby" } }
            };

            IAppointmentRepository repository = new AppointmentRepository(appointment);

            appointmentService = new AppointmentService(repository);
        }
        public void CreateAppointmentWithInvalidRequestTest()
        {
            // Arrange
            IAppointmentRepository repository = new AppointmentRepository();
            IAppointmentService service = new AppointmentService(repository);

            // Arrange
            CreateAppointmentRequest request = new CreateAppointmentRequest();

            // Act
            AppointmentResponse result = service.CreateAppointment(request);

            // Assert
            Assert.IsNull(result.Appointment);
            Assert.IsFalse(result.Success);
        }
        public void GetAppointmentTest()
        {
            // Arrange
            IList<Appointment> appointments = new List<Appointment>
            {
                new Appointment() { ID = 1 }
            };

            // Arrange
            IAppointmentRepository repository = new AppointmentRepository(appointments);
            IAppointmentService service = new AppointmentService(repository);

            // Arrange
            AppointmentRequest request = new AppointmentRequest() { AppointmentID = 1 };

            // Act
            AppointmentResponse result = service.GetAppointment(request);

            // Assert
            Assert.AreEqual(appointments[0], result.Appointment);
            Assert.IsTrue(result.Success);
        }
        public void CreateAppointmentTest()
        {
            // Arrange
            IAppointmentRepository repository = new AppointmentRepository();
            IAppointmentService service = new AppointmentService(repository);

            // Arrange
            Appointment appointment = new Appointment()
            {
                Patient = new Patient { FirstName = "Test", LastName = "Test" }
            };

            // Arrange
            CreateAppointmentRequest request = new CreateAppointmentRequest() { Appointment = appointment };

            // Act
            AppointmentResponse result = service.CreateAppointment(request);

            // Assert
            Assert.AreEqual(appointment.ID, result.Appointment.ID);
            Assert.AreEqual(appointment.Patient, result.Appointment.Patient);
            Assert.IsTrue(result.Success);
        }