public async Task GivenARequestWithInvalidSeriesInstanceIdentifier_WhenRetrievingInstanceMetadata_ThenDicomInvalidIdentifierExceptionIsThrown(string seriesInstanceUid, string sopInstanceUid)
        {
            string ifNoneMatch = null;
            RetrieveMetadataRequest request = new RetrieveMetadataRequest(TestUidGenerator.Generate(), seriesInstanceUid, sopInstanceUid, ifNoneMatch);
            var ex = await Assert.ThrowsAsync <InvalidIdentifierException>(() => _retrieveMetadataHandler.Handle(request, CancellationToken.None));

            Assert.Equal($"DICOM Identifier 'SeriesInstanceUid' value '{seriesInstanceUid.Trim()}' is invalid. Value length should not exceed the maximum length of 64 characters. Value should contain characters in '0'-'9' and '.'. Each component must start with non-zero number.", ex.Message);
        }
        public async Task GivenARequestWithInvalidStudyInstanceIdentifier_WhenHandlerIsExecuted_ThenDicomInvalidIdentifierExceptionIsThrown(string studyInstanceUid)
        {
            EnsureArg.IsNotNull(studyInstanceUid, nameof(studyInstanceUid));
            string ifNoneMatch = null;
            RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, ifNoneMatch);
            var ex = await Assert.ThrowsAsync <InvalidIdentifierException>(() => _retrieveMetadataHandler.Handle(request, CancellationToken.None));

            Assert.Equal($"DICOM Identifier 'StudyInstanceUid' value '{studyInstanceUid.Trim()}' is invalid. Value length should not exceed the maximum length of 64 characters. Value should contain characters in '0'-'9' and '.'. Each component must start with non-zero number.", ex.Message);
        }
Exemplo n.º 3
0
        public async Task GivenARequestWithInvalidSeriesInstanceIdentifier_WhenRetrievingInstanceMetadata_ThenDicomInvalidIdentifierExceptionIsThrown(string seriesInstanceUid, string sopInstanceUid)
        {
            EnsureArg.IsNotNull(seriesInstanceUid, nameof(seriesInstanceUid));
            string ifNoneMatch = null;
            RetrieveMetadataRequest request = new RetrieveMetadataRequest(TestUidGenerator.Generate(), seriesInstanceUid, sopInstanceUid, ifNoneMatch);
            var ex = await Assert.ThrowsAsync <InvalidIdentifierException>(() => _retrieveMetadataHandler.Handle(request, CancellationToken.None));

            Assert.Equal(ValidationErrorCode.UidIsInvalid, ex.ErrorCode);
        }
        public async Task GivenARequestWithValidInstanceIdentifierAndExpiredIfNoneMatchHeader_WhenRetrievingSopInstanceMetadata_ThenResponseMetadataIsReturnedSuccessfully(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, string ifNoneMatch, string eTag)
        {
            RetrieveMetadataResponse response = SetupRetrieveMetadataResponseForValidatingCache(false, eTag);

            _retrieveMetadataService.RetrieveSopInstanceMetadataAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch).Returns(response);

            RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch);

            await ValidateRetrieveMetadataResponse(response, request);
        }
        public async Task GivenARequestWithValidInstanceIdentifierAndIfNoneMatchHeader_WhenRetrievingSopInstanceMetadata_ThenNotModifiedResponseIsReturned(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, string ifNoneMatch)
        {
            RetrieveMetadataResponse response = SetupRetrieveMetadataResponseForValidatingCache(true, ifNoneMatch);

            _retrieveMetadataService.RetrieveSopInstanceMetadataAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch).Returns(response);

            RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch);

            await ValidateRetrieveMetadataResponse(response, request);
        }
        public void GivenRetrieveStudyMetadataRequest_WhenConstructed_ThenResourceTypeAndInstanceUidIsSetCorrectly()
        {
            string studyInstanceUid = Guid.NewGuid().ToString();
            string ifNoneMatch      = $"{_random.Next()}-{_random.Next()}";
            var    request          = new RetrieveMetadataRequest(studyInstanceUid, ifNoneMatch);

            Assert.Equal(ResourceType.Study, request.ResourceType);
            Assert.Equal(studyInstanceUid, request.StudyInstanceUid);
            Assert.Equal(ifNoneMatch, request.IfNoneMatch);
        }
        public async Task GivenARequestWithValidInstanceIdentifier_WhenRetrievingStudyInstanceMetadata_ThenResponseMetadataIsReturnedSuccessfully()
        {
            string studyInstanceUid = TestUidGenerator.Generate();
            string ifNoneMatch      = null;

            RetrieveMetadataResponse response = SetupRetrieveMetadataResponse();

            _retrieveMetadataService.RetrieveStudyInstanceMetadataAsync(studyInstanceUid).Returns(response);

            RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, ifNoneMatch);

            await ValidateRetrieveMetadataResponse(response, request);
        }
        public async Task GivenRepeatedIdentifiers_WhenRetrievingInstanceMetadata_ThenDicomBadRequestExceptionIsThrownAsync(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid)
        {
            string       ifNoneMatch          = null;
            const string expectedErrorMessage = "The values for StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID must be unique.";
            var          request = new RetrieveMetadataRequest(
                studyInstanceUid: studyInstanceUid,
                seriesInstanceUid: seriesInstanceUid,
                sopInstanceUid: sopInstanceUid,
                ifNoneMatch: ifNoneMatch);

            var ex = await Assert.ThrowsAsync <BadRequestException>(() => _retrieveMetadataHandler.Handle(request, CancellationToken.None));

            Assert.Equal(expectedErrorMessage, ex.Message);
        }
        private async Task ValidateRetrieveMetadataResponse(RetrieveMetadataResponse response, RetrieveMetadataRequest request)
        {
            RetrieveMetadataResponse actualResponse = await _retrieveMetadataHandler.Handle(request, CancellationToken.None);

            Assert.Same(response, actualResponse);
        }