Ejemplo n.º 1
0
        public void Build_WithHasValidHeaderThrowsException()
        {
            var value = "value";

            _dicomToolkit.Setup(p => p.HasValidHeader(It.IsAny <string>())).Throws(new Exception("error"));
            _dicomToolkit.Setup(p => p.Open(It.IsAny <string>())).Returns(MockDicomFile());
            _dicomToolkit.Setup(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out value)).Returns(true);

            var factory = new JobMetadataBuilderFactory(_logger.Object, _dicomToolkit.Object);

            var dicomTags = new List <string>()
            {
                "0010,0010", "0020,0020"
            };
            var files = new List <string>()
            {
                "/file1", "/file2"
            };
            var result = factory.Build(true, dicomTags, files);

            Assert.True(result.ContainsKey("Instances"));
            Assert.Equal("2", result["Instances"]);

            _dicomToolkit.Verify(p => p.HasValidHeader(It.IsAny <string>()), Times.Exactly(files.Count));
            _dicomToolkit.Verify(p => p.Open(It.IsAny <string>()), Times.Never());
            _dicomToolkit.Verify(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out value), Times.Never());
        }
Ejemplo n.º 2
0
        public void Build_WithoutMetadataDefined()
        {
            var factory = new JobMetadataBuilderFactory(_logger.Object, _dicomToolkit.Object);

            var result = factory.Build(true, null, new List <string>());

            Assert.True(result.ContainsKey("Instances"));
            Assert.Equal("0", result["Instances"]);
        }
Ejemplo n.º 3
0
        public void Build_ReturnsWithAllValidDicomTagsParsedFromAllFilesWithMultipleValues()
        {
            var counter  = new HashSet <DicomTag>();
            var expected = new Dictionary <string, string>();

            _dicomToolkit.Setup(p => p.HasValidHeader(It.IsAny <string>())).Returns((string value) =>
            {
                return(true);
            });
            _dicomToolkit.Setup(p => p.Open(It.IsAny <string>())).Returns(MockDicomFile());
            _dicomToolkit.Setup(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out It.Ref <string> .IsAny))
            .Returns(new TryGetStringDelegate((DicomFile dicomFile, DicomTag dicomTag, out string value) =>
            {
                value     = Guid.NewGuid().ToString("N");
                var count = 0;
                if (counter.Contains(dicomTag))
                {
                    count++;
                }
                expected.Add($"{dicomTag.Group:X4}{dicomTag.Element:X4}-{count}", value);
                counter.Add(dicomTag);
                return(true);
            }));

            var factory = new JobMetadataBuilderFactory(_logger.Object, _dicomToolkit.Object);

            var dicomTags = new List <string>()
            {
                "0010,0010", "0020,0020"
            };
            var files = new List <string>()
            {
                "/file1", "/file2"
            };
            var result = factory.Build(true, dicomTags, files);

            Assert.True(result.ContainsKey("Instances"));
            Assert.Equal("2", result["Instances"]);

            foreach (var key in expected.Keys)
            {
                Assert.True(result.ContainsKey(key));
                Assert.Equal(expected[key], result[key]);
            }

            _dicomToolkit.Verify(p => p.HasValidHeader(It.IsAny <string>()), Times.Exactly(files.Count));
            _dicomToolkit.Verify(p => p.Open(It.IsAny <string>()), Times.Exactly(files.Count));
            _dicomToolkit.Verify(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out It.Ref <string> .IsAny), Times.Exactly(files.Count * dicomTags.Count));
        }
Ejemplo n.º 4
0
        public void Build_ReturnsWithAllValidDicomTagsParsedFromAllFilesWithUniqueValues()
        {
            var value = Guid.NewGuid().ToString("N");

            _dicomToolkit.Setup(p => p.HasValidHeader(It.IsAny <string>())).Returns((string value) =>
            {
                return(true);
            });
            _dicomToolkit.Setup(p => p.Open(It.IsAny <string>())).Returns(MockDicomFile());
            _dicomToolkit.Setup(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out value)).Returns(true);

            var factory = new JobMetadataBuilderFactory(_logger.Object, _dicomToolkit.Object);

            var dicomTags = new List <string>()
            {
                "00100010", "00200020"
            };
            var files = new List <string>()
            {
                "/file1", "/file2"
            };
            var result = factory.Build(true, dicomTags, files);

            Assert.True(result.ContainsKey("Instances"));
            Assert.Equal("2", result["Instances"]);

            foreach (var key in dicomTags)
            {
                Assert.True(result.ContainsKey(key));
                Assert.Equal(value, result[key]);
            }

            _dicomToolkit.Verify(p => p.HasValidHeader(It.IsAny <string>()), Times.Exactly(files.Count));
            _dicomToolkit.Verify(p => p.Open(It.IsAny <string>()), Times.Exactly(files.Count));
            _dicomToolkit.Verify(p => p.TryGetString(It.IsAny <DicomFile>(), It.IsAny <DicomTag>(), out It.Ref <string> .IsAny), Times.Exactly(files.Count * dicomTags.Count));
        }