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()); }
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"]); }
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)); }
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)); }