public async void DownloadImages_ProperMethodsAreCalled() { // Arrange MockProvider mockProvider = new MockProvider(); var downloader = mockProvider.GetDicomDownloaderForStudiesFake(); StudyInfoProvider studyInfoProvider = new StudyInfoProvider(mockProvider.GetDicomQueryProviderForStudiesFake(), downloader); InfoIdentifier studyIdentifier = new InfoIdentifier("1.2.3"); StudyInfo studyInfo = new StudyInfo { StudyInstanceUID = studyIdentifier }; // Act await studyInfoProvider.DownloadImagesAsync(studyInfo); // Assert Assert.That(() => downloader.Received(1).DownloadAsync(studyIdentifier, Arg.Any<Func<InfoIdentifier, InfoIdentifier, Stream>>()), Throws.Nothing); }
public async void DownloadAsync_NullDownloadAction_DefaultActionIsUsed() { // Arrange var mockProvider = new MockProvider(); var serverFactory = mockProvider.GetDicomServerFactoryFake(); var clientFactory = mockProvider.GetDicomClientFactoryFake(); var requestFactory = mockProvider.GetDicomRequestFactoryFake(); var dicomDownloader = new DicomDownloader<TestInfo>(serverFactory, clientFactory, requestFactory); var identifier = new InfoIdentifier("identifier"); serverFactory.When(c=>c.CreateDicomServer(Arg.Any<Func<InfoIdentifier, InfoIdentifier, Stream>>())).Do(c => { var input = c.Arg<Func<InfoIdentifier, InfoIdentifier, Stream>>(); input(identifier, new InfoIdentifier("test")).Dispose(); }); // Act await dicomDownloader.DownloadAsync(identifier); // Assert Assert.That(File.Exists("./DICOM/identifier/test.dcm"), Is.True); }
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)); }
//protected bool Equals(InfoIdentifier other) //{ // return string.Equals(StringRepresentation, other.StringRepresentation); //} protected bool Equals(InfoIdentifier other) { return string.Equals(StringRepresentation, other.StringRepresentation); }
public async void DownloadAsync_MoveRequestIsAddedAndSent() { // Arrange var mockProvider = new MockProvider(); var serverFactory = mockProvider.GetDicomServerFactoryFake(); var clientFactory = mockProvider.GetDicomClientFactoryFake(); var requestFactory = mockProvider.GetDicomRequestFactoryFake(); var client = Substitute.For<IDicomClient<TestInfo>>(); clientFactory.CreateDicomClient().Returns(client); var moveRequest = Substitute.For<IDicomMoveRequest>(); requestFactory.CreateDicomMoveRequest(Arg.Any<InfoIdentifier>()).Returns(moveRequest); var dicomDownloader = new DicomDownloader<TestInfo>(serverFactory, clientFactory, requestFactory); var identifier = new InfoIdentifier("identifier"); // Act await dicomDownloader.DownloadAsync(identifier, GetDownloadActionFake()); // Assert Assert.That(() => requestFactory.Received(1).CreateDicomMoveRequest(identifier), Throws.Nothing); Assert.That(() => client.Received(1).AddMoveRequest(moveRequest), Throws.Nothing); Assert.That(() => client.Received(1).SendAsync(), Throws.Nothing); }
public void DownloadAsync_SeveralRequest_OnlyOneServerIsRunning() { // Arrange var mockProvider = new MockProvider(); var serverFactory = mockProvider.GetDicomServerFactoryFake(); var clientFactory = mockProvider.GetDicomClientFactoryFake(); var requestFactory = mockProvider.GetDicomRequestFactoryFake(); var client = Substitute.For<IDicomClient<TestInfo>>(); clientFactory.CreateDicomClient().Returns(client); client.When(c=>c.SendAsync()).Do(c=> Thread.Sleep(100)); var dicomDownloader = new DicomDownloader<TestInfo>(serverFactory, clientFactory, requestFactory); var identifier = new InfoIdentifier("identifier"); // Act Task.WaitAll( Task.Factory.StartNew(() => dicomDownloader.DownloadAsync(identifier, GetDownloadActionFake())), Task.Factory.StartNew(() => dicomDownloader.DownloadAsync(identifier, GetDownloadActionFake())), Task.Factory.StartNew(() => dicomDownloader.DownloadAsync(identifier, GetDownloadActionFake())) ); // Assert Assert.That(() => serverFactory.Received(1).CreateDicomServer(Arg.Any<Func<InfoIdentifier, InfoIdentifier, Stream>>()), Throws.Nothing); }