コード例 #1
0
        public async Task GivenDicomFileWithFrames_WhenRetrievingWithTransferSyntax_ThenTranscoderShouldBeInvokedAsExpected(bool originalTransferSyntaxRequested, string requestedRepresentation, bool shouldBeInvoked)
        {
            (DicomFile file, Stream stream) = StreamAndStoredFileFromDataset(GenerateDatasetsFromIdentifiers(), 1).Result;
            ITranscoder transcoder = Substitute.For <ITranscoder>();

            transcoder.TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>()).Returns(_recyclableMemoryStreamManager.GetStream());
            FrameHandler frameHandler           = new FrameHandler(transcoder, _recyclableMemoryStreamManager);
            IReadOnlyCollection <Stream> result = await frameHandler.GetFramesResourceAsync(stream, new int[] { 0 }, originalTransferSyntaxRequested, requestedRepresentation);

            // Call Position of LazyTransformReadOnlyStream so that transcoder.TranscodeFrame is invoked
            long pos = result.First().Position;

            if (shouldBeInvoked)
            {
                transcoder.Received().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>());
            }
            else
            {
                transcoder.DidNotReceive().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>());
            }
        }