public void Constructor_ResponseCallbackIsCalled() { // Arrange var mockProvider = new MockProvider(); var fellowOakMockProvider = new FellowOakMockProvider(); var whereCollection = mockProvider.GetWhereCollection(); var infoBuilder = mockProvider.GetDicomInfoBuilderFake(); infoBuilder.BuildInfo<TestInfo>(Arg.Any<object>()).Returns(new TestInfo { PatientID = 666, PatientName = "patientName" }); var response = new DicomCFindResponse(new DicomDataset()) { Dataset = new DicomDataset() }; TestInfo responseItem = null; var responseAction = new Action<TestInfo>(item => { responseItem = item; }); // Act var dicomFindRequest = new FellowOakDicomFindRequest<TestInfo>(mockProvider.GetDicomMappingFake(), fellowOakMockProvider.GetDicomTagAdapterFake(), infoBuilder, mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake(), responseAction, whereCollection.GetDicomWhereCollections().First()); var innerRequest = (DicomCFindRequest)dicomFindRequest.InnerRequest; innerRequest.OnResponseReceived(null, response); // Assert Assert.That(responseItem.PatientID, Is.EqualTo(666)); Assert.That(responseItem.PatientName, Is.EqualTo("patientName")); }
public void GetDicomQuery_ReturnsDicomQuery() { // Arrange var mockProvider = new MockProvider(); var dicomQueryProvider = new DicomQueryProvider<TestInfo>(mockProvider.GetGeneralizedInfoProviderFake(), mockProvider.GetDicomDataLoaderFake()); // Act + Assert Assert.That(() => dicomQueryProvider.GetDicomQuery(), Throws.Nothing); }
public async void LoadFromCache_ToListAsync_LoadsFromCache() { // Arrange var mockProvider = new MockProvider(); var dicomDataLoader = mockProvider.GetDicomDataLoaderFake(); var dicomQuery = new DicomQuery<TestInfo>(mockProvider.GetGeneralizedInfoProviderFake(), dicomDataLoader, mockProvider.GetWhereCollectionFake()); // Act await dicomQuery.LoadFromServer().LoadFromCache().ToListAsync(); // Assert Assert.That(() => dicomDataLoader.Received(1).LoadDataFromCacheAsync(Arg.Any<IWhereCollection<TestInfo>>()), Throws.Nothing); }
public void AddFindRequest_RequestAdapterIsCalled() { // Arrange var mockProvider = new MockProvider(); var fellowOakMockProvider = new FellowOakMockProvider(); var requestAdapter = mockProvider.GetRequestAdapterFake(); var dicomClient = new DicomClient<TestInfo>(mockProvider.GetSettingsProviderFake(), requestAdapter); var dicomFindRequest = new FellowOakDicomFindRequest<TestInfo>(mockProvider.GetDicomMappingFake(),fellowOakMockProvider.GetDicomTagAdapterFake(), mockProvider.GetDicomInfoBuilderFake(), mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake(), c=> {},mockProvider.GetDicomWhereCollectionFake()); // Act dicomClient.AddFindRequest(dicomFindRequest); // Assert Assert.That(() => requestAdapter.Received(1).CreateFindDicomRequest(dicomFindRequest), Throws.Nothing); }
public void Constructor_CreatesInnerRequestWithWhereConditions() { // Arrange var mockProvider = new MockProvider(); var fellowOakMockProvider = new FellowOakMockProvider(); var whereCollection = mockProvider.GetWhereCollection(); whereCollection.WhereEquals(DicomTags.PatientID, "PatientIDValue"); whereCollection.WhereLike(DicomTags.PatientName, "PatientNameValue"); // Act var dicomFindRequest = new FellowOakDicomFindRequest<TestInfo>(mockProvider.GetDicomMappingFake(), fellowOakMockProvider.GetDicomTagAdapterFake(), mockProvider.GetDicomInfoBuilderFake(), mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake(), c => {}, whereCollection.GetDicomWhereCollections().First()); var innerRequestDataset = dicomFindRequest.InnerRequest.Dataset; // Assert Assert.That(innerRequestDataset.Get<string>(DicomTag.PatientID), Is.EqualTo("PatientIDValue")); Assert.That(innerRequestDataset.Get<string>(DicomTag.PatientName), Is.EqualTo("*PatientNameValue*")); }
public void WhereLike_WithoutCache_AddsConditionToRequest() { // Arrange var requestFactory = new DicomRequestFactoryFake(); var mockProvider = new MockProvider(); IDicomQuery<TestInfo> dicomQuery = new DicomQuery<TestInfo>(mockProvider.GetGeneralizedInfoProviderFake(), mockProvider.GetDicomDataLoaderFake(), mockProvider.GetWhereCollectionFake()); // Act dicomQuery = dicomQuery.WhereLike(DicomTags.PatientID, 1); dicomQuery.ToList(); var whereItem = ((IWhereCollection<TestInfo>)requestFactory.WhereCollection).Single(); // Assert Assert.That(whereItem.DicomTag, Is.EqualTo(DicomTags.PatientID)); Assert.That(whereItem.Value, Is.EqualTo(1)); Assert.That(whereItem.Operator, Is.EqualTo(WhereOperator.Like)); }
public async void GetSeriesByIDAsync_FromCache_ProperQueryIsCreated() { // Arrange var mockProvider = new MockProvider(); var queryProvider = mockProvider.GetDicomQueryProviderForSeriesFake(); var dataLoader = Substitute.For<IDicomDataLoader<SeriesInfo>>(); var whereCollection = Substitute.For<IWhereCollection<SeriesInfo>>(); var query = Substitute.For<DicomQuery<SeriesInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection); queryProvider.GetDicomQuery().Returns(query); var seriesInfoProvider = new SeriesInfoProvider(queryProvider); // Act await seriesInfoProvider.GetSeriesByIDAsync("1.2.3", true); // Assert Assert.That(() => dataLoader.Received(1).LoadDataFromCacheAsync(whereCollection), Throws.Nothing); }
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); }
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); }
public void WhereLike_WithCache_FilterInMemoryList() { // Arrange var mockProvider = new MockProvider(); IDicomQuery<TestInfo> dicomQuery = new DicomQuery<TestInfo>(mockProvider.GetGeneralizedInfoProviderFake(), mockProvider.GetDicomDataLoaderFake(), mockProvider.GetWhereCollectionFake()); // Act dicomQuery = dicomQuery.WhereLike(DicomTags.PatientID, 1); var result = dicomQuery.ToList().Select(info => info.PatientID).ToList(); // Assert Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result.Contains(1), Is.True); Assert.That(result.Contains(10), Is.True); }
public void GetSeriesForStudy_PropertQueryIsCreated() { // Arrange var mockProvider = new MockProvider(); var queryProvider = Substitute.For<IDicomQueryProvider<SeriesInfo>>(); var dataLoader = Substitute.For<IDicomDataLoader<SeriesInfo>>(); var whereCollection = Substitute.For<IWhereCollection<SeriesInfo>>(); var query = Substitute.For<DicomQuery<SeriesInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection); queryProvider.GetDicomQuery().Returns(query); var study = new StudyInfo { StudyInstanceUID = new InfoIdentifier("1.2.3") }; var seriesInfoProvider = new SeriesInfoProvider(queryProvider); // Act seriesInfoProvider.GetSeriesForStudy(study); // Assert Assert.That(() => whereCollection.Received(1).WhereEquals(DicomTags.StudyInstanceUID, "1.2.3"), Throws.Nothing); }
public void WhereEquals_WithCache_FilterInMemoryList() { // Arrange var mockProvider = new MockProvider(); IDicomQuery<TestInfo> dicomQuery = new DicomQuery<TestInfo>(mockProvider.GetGeneralizedInfoProviderFake(), mockProvider.GetDicomDataLoaderFake(), mockProvider.GetWhereCollectionFake()); // Act dicomQuery = dicomQuery.WhereEquals(DicomTags.PatientID, 1); var result = dicomQuery.ToList().Single(); // Assert Assert.That(result.PatientID, Is.EqualTo(1)); }
private IDicomRequestAdapter<TestInfo> GetDicomRequestAdapter() { var mockProvider = new MockProvider(); var fellowOakMockProvider = new FellowOakMockProvider(); return new DicomRequestAdapter<TestInfo>(fellowOakMockProvider.GetDicomTagAdapterFake(), mockProvider.GetDicomInfoBuilderFake(), mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake()); }
public async void GetStudyByIDAsync_FromServer_ProperQueryIsCreated() { // Arrange MockProvider mockProvider = new MockProvider(); var queryProvider = mockProvider.GetDicomQueryProviderForStudiesFake(); var dataLoader = Substitute.For<IDicomDataLoader<StudyInfo>>(); var whereCollection = Substitute.For<IWhereCollection<StudyInfo>>(); var query = Substitute.For<DicomQuery<StudyInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection); queryProvider.GetDicomQuery().Returns(query); StudyInfoProvider studyInfoProvider = new StudyInfoProvider(queryProvider, mockProvider.GetDicomDownloaderForStudiesFake()); // Act await studyInfoProvider.GetStudyByIDAsync("1.2.3"); // Assert Assert.That(() => whereCollection.Received(1).WhereEquals(DicomTags.StudyInstanceUID, "1.2.3"), Throws.Nothing); }
public void GetStudiesForPatient_ProperQueryIsCreated([Values("910725/6444", "9107256444")] string birthNumber) { // Arrange MockProvider mockProvider = new MockProvider(); var queryProvider = Substitute.For<IDicomQueryProvider<StudyInfo>>(); var dataLoader = Substitute.For<IDicomDataLoader<StudyInfo>>(); var whereCollection = Substitute.For<IWhereCollection<StudyInfo>>(); var query = Substitute.For<DicomQuery<StudyInfo>>(mockProvider.GetGeneralizedInfoProviderFake(), dataLoader, whereCollection); queryProvider.GetDicomQuery().Returns(query); PatientInfo patient = new PatientInfo { PatientID = new BirthNumber(birthNumber) }; StudyInfoProvider studyInfoProvider = new StudyInfoProvider(queryProvider, mockProvider.GetDicomDownloaderForStudiesFake()); // Act studyInfoProvider.GetStudiesForPatient(patient); // Assert Assert.That(() => whereCollection.Received(1).WhereEquals(DicomTags.PatientID, birthNumber), Throws.Nothing); }