public void CreateExaminationQuerySuccessReturnsExamination() { // Arrange var examination = new MedicalExaminer.Models.Examination(); var connectionSettings = new Mock <IExaminationConnectionSettings>(); var locationConnectionSettings = new Mock <ILocationConnectionSettings>(); var myUser = new Mock <MeUser>(); CreateExaminationQuery query = new CreateExaminationQuery(examination, myUser.Object); var dbAccess = new Mock <IDatabaseAccess>(); var location = new MedicalExaminer.Models.Location(); var locationService = new Mock <LocationIdService>(dbAccess.Object, locationConnectionSettings.Object); locationService.Setup(x => x.Handle(It.IsAny <LocationRetrievalByIdQuery>())).Returns(Task.FromResult(location)); dbAccess.Setup(db => db.CreateItemAsync( connectionSettings.Object, examination, false)).Returns(Task.FromResult(examination)).Verifiable(); var sut = new CreateExaminationService(dbAccess.Object, connectionSettings.Object, locationService.Object, _urgencySettingsMock.Object); // Act var result = sut.Handle(query); // Assert dbAccess.Verify(db => db.CreateItemAsync(connectionSettings.Object, examination, false), Times.Once); Assert.NotNull(result.Result); Assert.Equal(myUser.Object.UserId, result.Result.LastModifiedBy); }
public void PatientDetailsUpdateQuerySuccessReturnsExaminationId() { // Arrange var examination = new MedicalExaminer.Models.Examination(); var patientDetails = new Mock <MedicalExaminer.Models.PatientDetails>(); var connectionSettings = new Mock <IExaminationConnectionSettings>(); var user = new Mock <MeUser>(); var query = new PatientDetailsUpdateQuery("a", patientDetails.Object, user.Object, _locationPath); var dbAccess = new Mock <IDatabaseAccess>(); var locationConnectionSettings = new Mock <ILocationConnectionSettings>(); var location = new MedicalExaminer.Models.Location(); var locationService = new Mock <LocationIdService>(dbAccess.Object, locationConnectionSettings.Object); locationService.Setup(x => x.Handle(It.IsAny <LocationRetrievalByIdQuery>())).Returns(Task.FromResult(location)); dbAccess.Setup(db => db.GetItemAsync(connectionSettings.Object, It.IsAny <Expression <Func <MedicalExaminer.Models.Examination, bool> > >())) .Returns(Task.FromResult(examination)).Verifiable(); dbAccess.Setup(db => db.UpdateItemAsync(connectionSettings.Object, It.IsAny <MedicalExaminer.Models.Examination>())).Returns(Task.FromResult(examination)).Verifiable(); var sut = new PatientDetailsUpdateService(dbAccess.Object, connectionSettings.Object, Mapper, locationService.Object, _urgencySettingsMock.Object); // Act var result = sut.Handle(query); // Assert dbAccess.Verify( db => db.UpdateItemAsync( connectionSettings.Object, It.IsAny <MedicalExaminer.Models.Examination>()), Times.Once); Assert.NotNull(result.Result); }
public void PatientDetailsUpdateOnExaminationWithAllUrgencyIndicatorsSuccessReturnsExaminationWithIsUrgentTrue() { // Arrange var examination = new MedicalExaminer.Models.Examination() { ChildPriority = true, CoronerPriority = true, CulturalPriority = true, FaithPriority = true, OtherPriority = true, CreatedAt = DateTime.Now.AddDays(-3) }; var patientDetails = new MedicalExaminer.Models.PatientDetails() { ChildPriority = true, CoronerPriority = true, CulturalPriority = true, FaithPriority = true, OtherPriority = true, }; const string userId = "userId"; var user = new MeUser() { UserId = userId, }; var connectionSettings = new Mock <IExaminationConnectionSettings>(); var query = new PatientDetailsUpdateQuery("a", patientDetails, user, _locationPath); var dbAccess = new Mock <IDatabaseAccess>(); var locationConnectionSettings = new Mock <ILocationConnectionSettings>(); var location = new MedicalExaminer.Models.Location(); var locationService = new Mock <LocationIdService>(dbAccess.Object, locationConnectionSettings.Object); locationService.Setup(x => x.Handle(It.IsAny <LocationRetrievalByIdQuery>())).Returns(Task.FromResult(location)); dbAccess.Setup(db => db.GetItemAsync(connectionSettings.Object, It.IsAny <Expression <Func <MedicalExaminer.Models.Examination, bool> > >())) .Returns(Task.FromResult(examination)).Verifiable(); dbAccess.Setup(db => db.UpdateItemAsync(connectionSettings.Object, It.IsAny <MedicalExaminer.Models.Examination>())).Returns(Task.FromResult(examination)).Verifiable(); var sut = new PatientDetailsUpdateService(dbAccess.Object, connectionSettings.Object, Mapper, locationService.Object, _urgencySettingsMock.Object); // Act var result = sut.Handle(query); // Assert result.Result.IsUrgent().Should().BeTrue(); result.Result.LastModifiedBy.Should().Be(userId); }
public void CreateExaminationQueryWithNoUrgencyIndicatorsSuccessReturnsExaminationWithIsUrgentFalse() { // Arrange var examination = new MedicalExaminer.Models.Examination() { ChildPriority = false, CoronerPriority = false, CulturalPriority = false, FaithPriority = false, OtherPriority = false, CreatedAt = DateTime.Now.AddDays(-3) }; var userId = "userId"; var user = new MeUser() { UserId = userId }; var connectionSettings = new Mock <IExaminationConnectionSettings>(); CreateExaminationQuery query = new CreateExaminationQuery(examination, user); var dbAccess = new Mock <IDatabaseAccess>(); var locationConnectionSettings = new Mock <ILocationConnectionSettings>(); var location = new MedicalExaminer.Models.Location(); var locationService = new Mock <LocationIdService>(dbAccess.Object, locationConnectionSettings.Object); locationService.Setup(x => x.Handle(It.IsAny <LocationRetrievalByIdQuery>())).Returns(Task.FromResult(location)); dbAccess.Setup(db => db.CreateItemAsync( connectionSettings.Object, examination, false)).Returns(Task.FromResult(examination)).Verifiable(); var sut = new CreateExaminationService(dbAccess.Object, connectionSettings.Object, locationService.Object, _urgencySettingsMock.Object); // Act var result = sut.Handle(query); // Assert result.Result.Should().NotBeNull(); result.Result.IsUrgent().Should().BeFalse(); result.Result.LastModifiedBy.Should().Be(user.UserId); }
public void PatientDetailsUpdateQueryIsNullThrowsException() { // Arrange var connectionSettings = new Mock <IExaminationConnectionSettings>(); const PatientDetailsUpdateQuery query = null; var mapper = new Mock <IMapper>(); var dbAccess = new Mock <IDatabaseAccess>(); var locationConnectionSettings = new Mock <ILocationConnectionSettings>(); var location = new MedicalExaminer.Models.Location(); var locationService = new Mock <LocationIdService>(dbAccess.Object, locationConnectionSettings.Object); locationService.Setup(x => x.Handle(It.IsAny <LocationRetrievalByIdQuery>())).Returns(Task.FromResult(location)); var sut = new PatientDetailsUpdateService(dbAccess.Object, connectionSettings.Object, mapper.Object, locationService.Object, _urgencySettingsMock.Object); // Act Action act = () => sut.Handle(query).GetAwaiter().GetResult(); // Assert act.Should().Throw <ArgumentNullException>(); }