Beispiel #1
0
        public void CreatePatient_GivenPatientProfileWithNullBirthDate_PatientCreatedEventIsNotRaised()
        {
            using (var serviceLocatorFixture = new ServiceLocatorFixture())
            {
                // Setup
                SetupServiceLocatorFixture(serviceLocatorFixture);

                bool eventRaised = false;
                DomainEvent.Register<PatientCreatedEvent>(p => eventRaised = true);

                var patientRepositoryMock = new Mock<IPatientRepository>();

                var agency = new Mock<Agency>();

                var patientUniqueIdentifierCalculatorMock = new Mock<IPatientUniqueIdentifierGenerator>();
                var patientFactory = new PatientFactory(
                    patientRepositoryMock.Object, patientUniqueIdentifierCalculatorMock.Object);

                // Exercise
                patientFactory.CreatePatient(agency.Object, CreateValidName(), InvalidPatientProfileWithNullBirthDate());

                // Verify
                Assert.IsFalse(eventRaised);
            }
        }
        public void Handle_GivenValidPatientInfo_ReturnsPatientDtoThatWasSavedInDB()
        {
            var patientRepository = new PatientRepository ( SessionProvider );
            var patientFactory = new PatientFactory(patientRepository, new PatientUniqueIdentifierGenerator());
            var dtoToDomainMappingHelper = new DtoToDomainMappingHelper ( new LookupValueRepository ( SessionProvider ) );
            var handler = new CreateNewPatientRequestHandler(dtoToDomainMappingHelper, patientFactory)
                              {
                                  SessionProvider = SessionProvider
                              };

            // When you do Agatha Request Handler testing, always declare the request as the base class type Agatha.Common.Request
            Request request = new CreateNewPatientRequest
                              {
                                  AgencyKey = SafeHarborAgency.Key,
                                  BirthDate = new DateTime ( 1983, 8, 29 ),
                                  FirstName = "John",
                                  Gender = new LookupValueDto
                                               {
                                                   WellKnownName = MaleGender.WellKnownName,
                                                   Key = MaleGender.Key,
                                                   Name = MaleGender.Name
                                               },
                                  LastName = "Smith",
                                  MiddleName = "Middle"
                              };

            var response = handler.Handle ( request ) as CreateNewPatientResponse;

            Assert.IsTrue ( response.PatientDto.Key > 0 );
        }
        public void Handle_GivenInValidPatientInfo_ThrowsException()
        {
            var patientRepository = new PatientRepository ( SessionProvider );
            var patientFactory = new PatientFactory(patientRepository, new PatientUniqueIdentifierGenerator());
            var dtoToDomainMappingHelper = new DtoToDomainMappingHelper ( new LookupValueRepository ( SessionProvider ) );
            var handler = new CreateNewPatientRequestHandler ( dtoToDomainMappingHelper, patientFactory )
                              {
                                  SessionProvider = SessionProvider
                              };

            // When you do Agatha Request Handler testing, always declare the request as the base class type Agatha.Common.Request
            Request request = new CreateNewPatientRequest
                                  {
                                      AgencyKey = SafeHarborAgency.Key
                                  };
            handler.Handle ( request );
        }
Beispiel #4
0
        public void CreatePatient_GivenPatientProfileWithNullBirthDate_PatientIsNotCreated()
        {
            using (var serviceLocatorFixture = new ServiceLocatorFixture())
            {
                // Setup
                SetupServiceLocatorFixture(serviceLocatorFixture);

                var agency = new Mock<Agency>();
                var patientRepositoryMock = new Mock<IPatientRepository>();
                var patientUniqueIdentifierCalculatorMock = new Mock<IPatientUniqueIdentifierGenerator>();
                var patientFactory = new PatientFactory(
                    patientRepositoryMock.Object, patientUniqueIdentifierCalculatorMock.Object);

                // Exercise
                var patient = patientFactory.CreatePatient(agency.Object, CreateValidName(), InvalidPatientProfileWithNullBirthDate());

                // Verify
                Assert.IsNull(patient);
            }
        }
Beispiel #5
0
        public void CreatePatient_GivenPatientProfileWithNullBirthDate_PatientIsNotMadePersistent()
        {
            using (var serviceLocatorFixture = new ServiceLocatorFixture())
            {
                // Setup
                SetupServiceLocatorFixture(serviceLocatorFixture);

                var isPersistent = false;

                var patientRepositoryMock = new Mock<IPatientRepository>();
                patientRepositoryMock
                    .Setup(p => p.MakePersistent(It.IsAny<Patient>()))
                    .Callback(() => isPersistent = true);
                var agency = new Mock<Agency>();

                var patientUniqueIdentifierCalculatorMock = new Mock<IPatientUniqueIdentifierGenerator>();
                var patientFactory = new PatientFactory(
                    patientRepositoryMock.Object, patientUniqueIdentifierCalculatorMock.Object);

                // Exercise
                patientFactory.CreatePatient(agency.Object, CreateValidName(), InvalidPatientProfileWithNullBirthDate());

                // Verify
                Assert.IsFalse(isPersistent);
            }
        }
Beispiel #6
0
        public void DestroyPatient_GivenAPatient_ThrowsNotImplementedException()
        {
            // Setup
            var patientRepositoryMock = new Mock<IPatientRepository> ();
            var patientUniqueIdentifierCalculatorMock = new Mock<IPatientUniqueIdentifierGenerator>();
            var patientFactory = new PatientFactory(
                patientRepositoryMock.Object, patientUniqueIdentifierCalculatorMock.Object);
            var patient = new Mock<Patient> ();

            // Exercise
            patientFactory.DestroyPatient ( patient.Object );

            // Verify
        }
Beispiel #7
0
        public void CreatePatient_GivenValidParameters_PatientIsMadePersistent2()
        {
            using (var serviceLocatorFixture = new ServiceLocatorFixture())
            {
                // Setup
                SetupServiceLocatorFixture(serviceLocatorFixture);

                string uniqueIdentifier = "unique identifier";

                var patientRepositoryMock = new Mock<IPatientRepository>();

                var agency = new Mock<Agency>();

                var patientUniqueIdentifierCalculatorMock = new Mock<IPatientUniqueIdentifierGenerator>();

                patientUniqueIdentifierCalculatorMock
                    .Setup ( p => p.GenerateUniqueIdentifier( It.IsAny<Patient> () ) )
                    .Returns(() => uniqueIdentifier);

                var patientFactory = new PatientFactory(
                    patientRepositoryMock.Object, patientUniqueIdentifierCalculatorMock.Object);

                // Exercise
                var patient = patientFactory.CreatePatient(agency.Object, CreateValidName(), ValidPatientProfile());

                // Verify
                Assert.AreSame(uniqueIdentifier, patient.UniqueIdentifier, "Patient uniqueIdentifier is not assigned correctly.");
            }
        }