Пример #1
0
        public void AddAppointment_ValidatorFails_ThrowsArgumentException()
        {
            var failedValidationResult = new AppointmentValidationResult(false, _fixture.Create <string>());

            _validator.Setup(x => x.ValidateRequest(It.IsAny <AddAppointmentRequest>())).Returns(failedValidationResult);

            var exception = Assert.Throws <ArgumentException>(() => _sut.AddNewAppointment(_fixture.Create <AddAppointmentRequest>()));

            exception.Message.Should().Be(failedValidationResult.Errors.First());
        }
Пример #2
0
        public void AddAppointment_AddsAppointmentToContextWithGeneratedId()
        {
            var bookingId = new Guid();

            var request = _fixture.Create <AddAppointmentRequest>();

            var validatedResult = new AppointmentValidationResult(true)
            {
                AppointmentDoctor = new Doctor {
                    Id = request.DoctorId
                },
                AppointmentPatient = new Patient {
                    Id = request.PatientId, Clinic = new Clinic {
                        SurgeryType = SurgeryType.SystemOne
                    }
                }
            };

            _validator.Setup(x => x.ValidateRequest(It.IsAny <AddAppointmentRequest>())).Returns(validatedResult);

            var expected = new Order
            {
                Id          = bookingId,
                StartTime   = request.StartTime,
                EndTime     = request.EndTime,
                PatientId   = request.PatientId,
                DoctorId    = request.DoctorId,
                Patient     = new Patient(),
                Doctor      = new Doctor(),
                SurgeryType = (int)SurgeryType.SystemOne
            };

            _sut.AddNewAppointment(request);

            _context.Order.Should().ContainEquivalentOf(expected, options => options.Excluding(order => order.Patient).Excluding(order => order.Doctor).Excluding(order => order.Id).Using <DateTime>(ctx => ctx.Subject.Should().BeCloseTo(ctx.Expectation, 1000)).WhenTypeIs <DateTime>());
        }