コード例 #1
0
        public void GetPatientByBirthNumberAsync_InvalidBirthNumber_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var patientInfoProvider = new PatientInfoProvider(mockProvider.GetDicomQueryProviderForPatientsFake(), mockProvider.GetStudyInfoProviderFake(), new BirthNumberParser());

            // Act
            var exception = patientInfoProvider.GetPatientByBirthNumberAsync("910725/6443").Exception;
                
            // Act + Assert
            Assert.That(exception.InnerExceptions.First(), Is.TypeOf<ArgumentException>());
        }
コード例 #2
0
        public void GetPatients_ProperQueryIsCreated()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var queryProvider = Substitute.For<IDicomQueryProvider<PatientInfo>>();
            var patientInfoProvider = new PatientInfoProvider(queryProvider,mockProvider.GetStudyInfoProviderFake(), mockProvider.GetBirthNumberParserFake());

            // Act
            patientInfoProvider.GetPatients();

            // Assert
            Assert.That(() => queryProvider.Received(1).GetDicomQuery(), Throws.Nothing);
        }
コード例 #3
0
        public async void GetPatientByBirthNumber_FromServer_ProperQueryIsCreated([Values("910725/6444", "9107256444")] string birthNumber)
        {
            // Arrange
            var mockProvider = new MockProvider();
            var queryProvider = Substitute.For<IDicomQueryProvider<PatientInfo>>();
            var dataLoader = Substitute.For<IDicomDataLoader<PatientInfo>>();
            var whereCollection = Substitute.For<IWhereCollection<PatientInfo>>();
            var query = Substitute.For<DicomQuery<PatientInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection);
            queryProvider.GetDicomQuery().Returns(query);

            var patientInfoProvider = new PatientInfoProvider(queryProvider, mockProvider.GetStudyInfoProviderFake(), mockProvider.GetBirthNumberParserFake());

            // Act
            await patientInfoProvider.GetPatientByBirthNumberAsync(birthNumber);

            // Assert
            Assert.That(() => whereCollection.Received(1).WhereEquals(DicomTags.PatientID, "910725/6444"), Throws.Nothing);
            Assert.That(() => whereCollection.Received(1).WhereEquals(DicomTags.PatientID, "9107256444"), Throws.Nothing);
        }
コード例 #4
0
        public async void DownloadImages_ProperMethodsAreCalled()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var studyInfoProvider = Substitute.For<IStudyInfoProvider>();
            var dataLoader = Substitute.For<IDicomDataLoader<StudyInfo>>();
            var whereCollection = Substitute.For<WhereCollection<StudyInfo>>(mockProvider.GetDicomMappingFake());
            var query = Substitute.For<DicomQuery<StudyInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection);
            
            dataLoader.LoadDataFromServerAsync(Arg.Any<IWhereCollection<StudyInfo>>()).Returns(c =>
                Task<IImmutableList<StudyInfo>>.Factory.StartNew(() => 
                    new List<StudyInfo>
                    {
                        new StudyInfo(),
                        new StudyInfo()
                    }.ToImmutableList()));
            
            studyInfoProvider.GetStudiesForPatient(Arg.Any<PatientInfo>()).Returns(query);
            var patientInfoProvider = new PatientInfoProvider(mockProvider.GetDicomQueryProviderForPatientsFake(), studyInfoProvider, mockProvider.GetBirthNumberParserFake());
            var patient = new PatientInfo();
                
            // Act
            await patientInfoProvider.DownloadImagesAsync(patient);

            // Assert
            Assert.That(() => studyInfoProvider.Received(1).GetStudiesForPatient(patient), Throws.Nothing);
            Assert.That(() => studyInfoProvider.Received(2).DownloadImagesAsync(Arg.Any<StudyInfo>(), Arg.Any<Func<InfoIdentifier, InfoIdentifier, Stream>>()), Throws.Nothing);
        }
コード例 #5
0
        public void DownloadImages_NullPatient_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var patientInfoProvider = new PatientInfoProvider(mockProvider.GetDicomQueryProviderForPatientsFake(), mockProvider.GetStudyInfoProviderFake(), mockProvider.GetBirthNumberParserFake());

            // Act + Assert
            Assert.That(() => patientInfoProvider.DownloadImagesAsync(null).Exception.InnerExceptions[0], Is.InstanceOf<ArgumentNullException>());
        }