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 ); }
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); } }
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); } }
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 }
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."); } }