コード例 #1
0
        public async void HandleTypeAsync_AllSeries([Values(true, false)] bool useCache)
        {
            // Arrange
            var mockProvider = new MockProvider();
            var seriesInfoProvider = mockProvider.GetSeriesInfoProviderFake();
            var seriesQuery = Substitute.For<IDicomQuery<SeriesInfo>>();

            seriesInfoProvider.GetSeries().Returns(seriesQuery);
            var seriesTypeHandler = new SeriesTypeHandler(seriesInfoProvider, mockProvider.GetStudyInfoProviderFake());
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), mockProvider.GetBirthNumberParserFake())
            {
                Type = "series",
                UseCache = useCache
            };

            // Act
            await seriesTypeHandler.HandleTypeAsync(inputArguments, GetMemoryTextWriter());

            // Assert
            if (useCache)
            {
                Assert.That(() => seriesQuery.Received(1).LoadFromCache(), Throws.Nothing);
            }
            Assert.That(() => seriesInfoProvider.Received(1).GetSeries(), Throws.Nothing);
        }
コード例 #2
0
        public void CreateDicomServer_NullDownloadAction_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var serverFactory = new DicomServerFactory(mockProvider.GetSettingsProviderFake(), mockProvider.GetLoggerFake());

            // Act + Assert
            Assert.That(() => serverFactory.CreateDicomServer(null), Throws.TypeOf<ArgumentNullException>());
        }
コード例 #3
0
        public void CreateDicomFindRequest_NullResponseCallback_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomRequestFactory = new DicomRequestFactory(mockProvider.GetSettingsProviderFake());

            // Act + Assert
            Assert.That(() => dicomRequestFactory.CreateDicomFindRequest<TestInfo>(mockProvider.GetDicomWhereCollectionFake(), null), Throws.TypeOf<ArgumentNullException>());
        }
コード例 #4
0
        public void CreateDicomMoveRequest_NullInfoIdentifier_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomRequestFactory = new DicomRequestFactory(mockProvider.GetSettingsProviderFake());

            // Act + Assert
            Assert.That(() => dicomRequestFactory.CreateDicomMoveRequest(null), Throws.TypeOf<ArgumentNullException>());
        }
コード例 #5
0
        public void AddFindRequest_NullDicomRequest_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomClient = new DicomClient<TestInfo>(mockProvider.GetSettingsProviderFake(), mockProvider.GetRequestAdapterFake());

            // Act + Assert
            Assert.That(() => dicomClient.AddFindRequest(null), Throws.InstanceOf<ArgumentNullException>());
        }
コード例 #6
0
        public void CreateDicomServer_CreatesNewInstanceOfDicomServer()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var serverFactory = new DicomServerFactory(mockProvider.GetSettingsProviderFake(), mockProvider.GetLoggerFake());

            // Act
            var server1 = serverFactory.CreateDicomServer((a, b) => new MemoryStream());
            var server2 = serverFactory.CreateDicomServer((a, b) => new MemoryStream());

            // Assert
            Assert.That(server1, Is.Not.SameAs(server2));
        }
コード例 #7
0
        public void CreateDicomClient_CreatesNewInstanceOfDicomClient()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var clientFactory = new DicomClientFactory<TestInfo>(mockProvider.GetSettingsProviderFake(), mockProvider.GetRequestAdapterFake());

            // Act
            var client1 = clientFactory.CreateDicomClient();
            var client2 = clientFactory.CreateDicomClient();

            // Assert
            Assert.That(client1, Is.Not.SameAs(client2));
        }
コード例 #8
0
        public void AddMoveRequest_RequestAdapterIsCalled()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var requestAdapter = mockProvider.GetRequestAdapterFake();
            var dicomClient = new DicomClient<TestInfo>(mockProvider.GetSettingsProviderFake(), requestAdapter);
            var dicomMoveRequest = Substitute.For<IDicomMoveRequest>();

            // Act
            dicomClient.AddMoveRequest(dicomMoveRequest);

            // Assert
            Assert.That(() => requestAdapter.Received(1).CreateMoveDicomRequest(dicomMoveRequest), Throws.Nothing);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        public void CreateDicomFindRequest_CorrectRequestIsCreated()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomRequestFactory = new DicomRequestFactory(mockProvider.GetSettingsProviderFake());

            var dicomWhereCollection = mockProvider.GetDicomWhereCollectionFake();
            Action<TestInfo> responseCallback = item => {};

            // Act
            var request = dicomRequestFactory.CreateDicomFindRequest(dicomWhereCollection, responseCallback);

            // Assert
            Assert.That(request.ResponseCallback, Is.SameAs(responseCallback));
            Assert.That(request.DicomWhereCollection, Is.SameAs(dicomWhereCollection));
        }
コード例 #11
0
        public void HandleTypeAsync_InvalidType_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var studyTypeHandler = new StudyTypeHandler(mockProvider.GetStudyInfoProviderFake(), mockProvider.GetPatientInfoProviderFake());
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), mockProvider.GetBirthNumberParserFake())
            {
                Type = "UnknownType"
            };

            // Act
            var exception = studyTypeHandler.HandleTypeAsync(inputArguments, GetMemoryTextWriter()).Exception;

            // Assert
            Assert.That(exception.InnerExceptions.First(), Is.TypeOf<ArgumentException>());
        }
コード例 #12
0
        public async void HandleTypeAsync_SingleStudy([Values(true, false)] bool useCache)
        {
            // Arrange
            var mockProvider = new MockProvider();
            var studyInfoProvider = mockProvider.GetStudyInfoProviderFake();
            var studyTypeHandler = new StudyTypeHandler(studyInfoProvider, mockProvider.GetPatientInfoProviderFake());
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), mockProvider.GetBirthNumberParserFake())
            {
                Type = "study",
                Identifier = "123",
                UseCache = useCache
            };

            // Act
            await studyTypeHandler.HandleTypeAsync(inputArguments, GetMemoryTextWriter());

            // Assert
            Assert.That(() => studyInfoProvider.Received(1).GetStudyByIDAsync(new InfoIdentifier("123"), useCache), Throws.Nothing);
        }
コード例 #13
0
        public async void HandleTypeAsync_SingleStudy_Download()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var studyInfoProvider = mockProvider.GetStudyInfoProviderFake();
            var studyTypeHandler = new StudyTypeHandler(studyInfoProvider, mockProvider.GetPatientInfoProviderFake());
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), mockProvider.GetBirthNumberParserFake())
            {
                Type = "study",
                Identifier = "123",
                Download = true
            };

            // Act
            await studyTypeHandler.HandleTypeAsync(inputArguments, GetMemoryTextWriter());

            // Assert
            Assert.That(() => studyInfoProvider.Received(1).GetStudyByIDAsync(new InfoIdentifier("123")), Throws.Nothing);
            Assert.That(() => studyInfoProvider.Received(1).DownloadImagesAsync(Arg.Any<StudyInfo>()), Throws.Nothing);
        }
コード例 #14
0
        public async void HandleTypeAsync_ForPatient([Values(true, false)] bool useCache)
        {
            // Arrange
            var mockProvider = new MockProvider();
            var studyInfoProvider = mockProvider.GetStudyInfoProviderFake();
            var studyQuery = Substitute.For<IDicomQuery<StudyInfo>>();

            studyInfoProvider.GetStudiesForPatient(Arg.Any<PatientInfo>()).Returns(studyQuery);
            var patientInfoProvider = mockProvider.GetPatientInfoProviderFake();
            var studyTypeHandler = new StudyTypeHandler(studyInfoProvider, patientInfoProvider);
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), mockProvider.GetBirthNumberParserFake())
            {
                Type = "study",
                ParentIdentifier = "123",
                UseCache = useCache
            };

            // Act
            await studyTypeHandler.HandleTypeAsync(inputArguments, GetMemoryTextWriter());

            // Assert
            if (useCache)
            {
                Assert.That(() => studyQuery.Received(1).LoadFromCache(), Throws.Nothing);
            }
            Assert.That(() => patientInfoProvider.Received(1).GetPatientByBirthNumberAsync("123", useCache), Throws.Nothing);
            Assert.That(() => studyInfoProvider.Received(1).GetStudiesForPatient(Arg.Any<PatientInfo>()), Throws.Nothing);
        }
コード例 #15
0
        public void CreateDicomMoveRequest_CorrectRequestIsCreated()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var settingsProvider = mockProvider.GetSettingsProviderFake();
            settingsProvider.DestinationApplicationEntity.Returns("DestinationAE");
            var identifier = new InfoIdentifier("identifier");

            var dicomRequestFactory = new DicomRequestFactory(settingsProvider);

            // Act
            var request = dicomRequestFactory.CreateDicomMoveRequest(identifier);

            // Assert
            Assert.That(request.DestinationAE, Is.EqualTo("DestinationAE"));
            Assert.That(request.Identifier, Is.SameAs(identifier));
        }
コード例 #16
0
        public void SendAsync_NullServerIP_ThrowsException()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomClient = new DicomClient<TestInfo>(mockProvider.GetSettingsProviderFake(), mockProvider.GetRequestAdapterFake());

            // Act + Assert
            Assert.That(() => dicomClient.SendAsync(null, 0, "callingAE", "calledAE").Exception.InnerExceptions[0], Is.InstanceOf<ArgumentNullException>());
        }
コード例 #17
0
        private InputArguments GetDefaultInputArguments()
        {
            var mockProvider = new MockProvider();
            var inputArguments = new InputArguments(mockProvider.GetSettingsProviderFake(), new BirthNumberParser())
            {
                CalledApplicationEntity = "calledAE",
                CallingApplicationEntity = "callingAE",
                RemoteAddress = "remoteAddr",
                RemotePort = 666,
                DestinationApplicationEntity = "destinationAE",
                LocalAddress = "localAddr",
                LocalPort = 666
            };

            return inputArguments;
        }