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 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 LoadDataFromServer_WhereCollection_CreatesRequest() { // Arrange var mockProvider = new MockProvider(); var requestFactory = new DicomRequestFactoryFake(); var dataLoader = new DicomDataLoader<TestInfo>(mockProvider.GetCacheProviderFake(), mockProvider.GetCacheIndexProviderFake(), mockProvider.GetDicomClientFactoryFake(), requestFactory); var whereCollection = new WhereCollection<TestInfo>(mockProvider.GetDicomMappingFake()); whereCollection.WhereEquals(DicomTags.PatientID, 1); // Act dataLoader.LoadDataFromServer(whereCollection); var whereItem = ((IDicomWhereCollection)requestFactory.WhereCollection).Single(); // Assert Assert.That(whereItem.DicomTag, Is.EqualTo(DicomTags.PatientID)); Assert.That(whereItem.Value, Is.EqualTo("1")); }
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 async void LoadDataFromCacheAsync_ReturnsFromCache() { // Arrange var mockProvider = new MockProvider(); var cacheProvider = mockProvider.GetCacheProviderFake(); var dataLoader = new DicomDataLoader<TestInfo>(cacheProvider, mockProvider.GetCacheIndexProviderFake(), mockProvider.GetDicomClientFactoryFake(), mockProvider.GetDicomRequestFactoryFake()); var whereCollection = new WhereCollection<TestInfo>(mockProvider.GetDicomMappingFake()); whereCollection.WhereEquals(DicomTags.PatientID, 1); // Act var result = (await dataLoader.LoadDataFromCacheAsync(whereCollection)).Single(); // Assert Assert.That(result.PatientID, Is.EqualTo(1)); Assert.That(() => cacheProvider.Received(1).Retrieve<TestInfo>(), Throws.Nothing); }
public async void LoadDataFromServerAsync_GetResponse_StoresInCache() { // Arrange var mockProvider = new MockProvider(); var cacheProvider = mockProvider.GetCacheProviderFake(); var dataLoader = new DicomDataLoader<TestInfo>(cacheProvider, mockProvider.GetCacheIndexProviderFake(), mockProvider.GetDicomClientFactoryFake(), mockProvider.GetDicomRequestFactoryFake()); var whereCollection = new WhereCollection<TestInfo>(mockProvider.GetDicomMappingFake()); whereCollection.WhereEquals(DicomTags.PatientID, 1); // Act var result = await dataLoader.LoadDataFromServerAsync(whereCollection); // Assert Assert.That(result.Count, Is.EqualTo(1)); Assert.That(result.All(c=>c.PatientID == 1), Is.True); Assert.That(() => cacheProvider.Received(1).Store(Arg.Any<string>(), Arg.Any<object>(), Arg.Any<bool>()), Throws.Nothing); }