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); }
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); }