public async Task GivenDatasetWithInvalidVrValue_WhenValidatingWithFullValidation_ThenDatasetValidationExceptionShouldBeThrown() { var featureConfiguration = Substitute.For <IOptions <FeatureConfiguration> >(); featureConfiguration.Value.Returns(new FeatureConfiguration { EnableFullDicomItemValidation = true, }); var minValidator = new DicomElementMinimumValidator(); _dicomDatasetValidator = new DicomDatasetValidator(featureConfiguration, minValidator, _queryTagService); #pragma warning disable CS0618 // Type or member is obsolete DicomValidation.AutoValidation = false; #pragma warning restore CS0618 // Type or member is obsolete // LO VR, invalid characters _dicomDataset.Add(DicomTag.SeriesDescription, "CT1 abdomen\u0000"); #pragma warning disable CS0618 // Type or member is obsolete DicomValidation.AutoValidation = true; #pragma warning restore CS0618 // Type or member is obsolete await ExecuteAndValidateException <DatasetValidationException>(ValidationFailedFailureCode); }
public DicomDatasetValidatorTests() { var featureConfiguration = Options.Create(new FeatureConfiguration() { EnableFullDicomItemValidation = false }); var minValidator = new DicomElementMinimumValidator(); _queryTagService = Substitute.For <IQueryTagService>(); _queryTags = new List <QueryTag>(QueryTagService.CoreQueryTags); _queryTagService.GetQueryTagsAsync(Arg.Any <CancellationToken>()).Returns(_queryTags); _dicomDatasetValidator = new DicomDatasetValidator(featureConfiguration, minValidator, _queryTagService); }
public StoreService( IStoreResponseBuilder storeResponseBuilder, IDicomDatasetValidator dicomDatasetValidator, IStoreOrchestrator storeOrchestrator, ILogger <StoreService> logger) { EnsureArg.IsNotNull(storeResponseBuilder, nameof(storeResponseBuilder)); EnsureArg.IsNotNull(dicomDatasetValidator, nameof(dicomDatasetValidator)); EnsureArg.IsNotNull(storeOrchestrator, nameof(storeOrchestrator)); EnsureArg.IsNotNull(logger, nameof(logger)); _storeResponseBuilder = storeResponseBuilder; _dicomDatasetValidator = dicomDatasetValidator; _storeOrchestrator = storeOrchestrator; _logger = logger; }
public async Task GivenDicomTagWithDifferentVR_WhenValidated_ThenShouldSkip() { var featureConfiguration = Options.Create(new FeatureConfiguration() { EnableFullDicomItemValidation = false }); DicomTag tag = DicomTag.Date; DicomElement element = new DicomDateTime(tag, DateTime.Now); _dicomDataset.AddOrUpdate(element); _queryTags.Clear(); _queryTags.Add(new QueryTag(tag.BuildExtendedQueryTagStoreEntry())); IDicomElementMinimumValidator validator = Substitute.For <IDicomElementMinimumValidator>(); _dicomDatasetValidator = new DicomDatasetValidator(featureConfiguration, validator, _queryTagService); await _dicomDatasetValidator.ValidateAsync(_dicomDataset, requiredStudyInstanceUid : null); validator.DidNotReceive().Validate(Arg.Any <DicomElement>()); }
public async Task GivenDicomTagWithDifferentVR_WhenValidated_ThenShouldThrowException() { var featureConfiguration = Options.Create(new FeatureConfiguration() { EnableFullDicomItemValidation = false }); DicomTag tag = DicomTag.Date; DicomElement element = new DicomDateTime(tag, DateTime.Now); _dicomDataset.AddOrUpdate(element); _queryTags.Clear(); _queryTags.Add(new QueryTag(tag.BuildExtendedQueryTagStoreEntry())); IDicomElementMinimumValidator validator = Substitute.For <IDicomElementMinimumValidator>(); _dicomDatasetValidator = new DicomDatasetValidator(featureConfiguration, validator, _queryTagService); await AssertThrowsAsyncWithMessage <DatasetValidationException>( () => _dicomDatasetValidator.ValidateAsync(_dicomDataset, requiredStudyInstanceUid: null), expectedMessage : $"The extended query tag '{tag}' is expected to have VR 'DA' but has 'DT' in file."); validator.DidNotReceive().Validate(Arg.Any <DicomElement>()); }