public StoreService( IStoreResponseBuilder storeResponseBuilder, IStoreDatasetValidator dicomDatasetValidator, IStoreOrchestrator storeOrchestrator, ILogger <StoreService> logger) { _storeResponseBuilder = EnsureArg.IsNotNull(storeResponseBuilder, nameof(storeResponseBuilder)); _dicomDatasetValidator = EnsureArg.IsNotNull(dicomDatasetValidator, nameof(dicomDatasetValidator)); _storeOrchestrator = EnsureArg.IsNotNull(storeOrchestrator, nameof(storeOrchestrator)); _logger = EnsureArg.IsNotNull(logger, nameof(logger)); }
public StoreDatasetValidatorTests() { var featureConfiguration = Options.Create(new FeatureConfiguration() { EnableFullDicomItemValidation = false }); var minValidator = new ElementMinimumValidator(); _queryTagService = Substitute.For <IQueryTagService>(); _queryTags = new List <QueryTag>(QueryTagService.CoreQueryTags); _queryTagService.GetQueryTagsAsync(Arg.Any <CancellationToken>()).Returns(_queryTags); _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, minValidator, _queryTagService); }
public async Task GivenDatasetWithInvalidVrValue_WhenValidatingWithFullValidation_ThenDatasetValidationExceptionShouldBeThrown() { var featureConfiguration = Substitute.For <IOptions <FeatureConfiguration> >(); featureConfiguration.Value.Returns(new FeatureConfiguration { EnableFullDicomItemValidation = true, }); var minValidator = new ElementMinimumValidator(); _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, minValidator, _queryTagService); // LO VR, invalid characters _dicomDataset.Add(DicomTag.SeriesDescription, "CT1 abdomen\u0000"); await ExecuteAndValidateException <DatasetValidationException>(ValidationFailedFailureCode); }
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())); IElementMinimumValidator validator = Substitute.For <IElementMinimumValidator>(); _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, validator, _queryTagService); await Assert.ThrowsAsync <ElementValidationException>( () => _dicomDatasetValidator.ValidateAsync(_dicomDataset, requiredStudyInstanceUid: null)); validator.DidNotReceive().Validate(Arg.Any <DicomElement>()); }