public async Task SearchForStudies_AllStudies()
        {
            var studyUid = DicomUIDGenerator.GenerateDerivedFromUUID();

            var response = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = _fixture.GenerateInstancesAsJson(1, studyUid),
            };

            Mock <HttpMessageHandler> handlerMock;
            HttpClient httpClient;

            GenerateHttpClient(response, out handlerMock, out httpClient);

            var qido = new QidoService(httpClient);

            var count = 0;

            await foreach (var instance in qido.SearchForStudies())
            {
                count++;
                Assert.IsType <string>(instance);
            }

            Assert.Equal(1, count);
            handlerMock.Protected().Verify(
                "SendAsync",
                Times.Exactly(1),
                ItExpr.Is <HttpRequestMessage>(req =>
                                               req.Method == HttpMethod.Get &&
                                               req.RequestUri.ToString().StartsWith($"{BaseUri}studies/")),
                ItExpr.IsAny <CancellationToken>());
        }
예제 #2
0
 public HttpResponseMessage SearchForSeries
 (
     [ModelBinder(typeof(QidoRequestModelBinder))]
     IQidoRequestModel request
 )
 {
     return(QidoService.SearchForSeries(request));
 }
        public async Task SearchForStudies_AllArguments()
        {
            var studyUid = DicomUIDGenerator.GenerateDerivedFromUUID();

            var response = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = _fixture.GenerateInstancesAsJson(1, studyUid),
            };

            Mock <HttpMessageHandler> handlerMock;
            HttpClient httpClient;

            GenerateHttpClient(response, out handlerMock, out httpClient);

            var qido = new QidoService(httpClient);

            var queryParameters = new Dictionary <string, string>();

            queryParameters.Add("11112222", "value");
            var fields = new List <string>();

            fields.Add("1234");

            var count = 0;

            await foreach (var instance in qido.SearchForStudies(queryParameters, fields, true, 1, 1))
            {
                count++;
                Assert.IsType <string>(instance);
            }

            Assert.Equal(1, count);
            handlerMock.Protected().Verify(
                "SendAsync",
                Times.Exactly(1),
                ItExpr.Is <HttpRequestMessage>(req =>
                                               req.Method == HttpMethod.Get &&
                                               req.RequestUri.ToString().StartsWith($"{BaseUri}studies/") &&
                                               req.RequestUri.Query.Contains("includefield=1234") &&
                                               req.RequestUri.Query.Contains("fuzzymatching=true") &&
                                               req.RequestUri.Query.Contains("limit=1") &&
                                               req.RequestUri.Query.Contains("offset=1") &&
                                               req.RequestUri.Query.Contains("11112222=value")),
                ItExpr.IsAny <CancellationToken>());
        }