コード例 #1
0
        public async void failed_request_should_return_empty_CheckCapacitySummaryResult()
        {
            var fakeResponse = new HttpResponseMessage(HttpStatusCode.BadRequest)
            {
                Content = new StringContent("{CheckCapacitySummaryResult: [{}]}")
            };

            var fakeDoSFilteredCase = new DosFilteredCase() { PostCode = "So30 2Un", Disposition = 1010 };
            var fakeRequest = new HttpRequestMessage() { Content = new StringContent(JsonConvert.SerializeObject(fakeDoSFilteredCase)) };

            _mockDosService.Setup(x => x.GetServices(It.IsAny<HttpRequestMessage>())).Returns(Task<HttpResponseMessage>.Factory.StartNew(() => fakeResponse));

            _mockServiceAvailabilityProfileManager.Setup(c => c.FindServiceAvailability(fakeDoSFilteredCase))
                .Returns(new ServiceAvailability(_mockServiceAvailabliityProfileResponse, fakeDoSFilteredCase.DispositionTime, fakeDoSFilteredCase.DispositionTimeFrameMinutes));

            _mockFilterServicesFeature.Setup(c => c.IsEnabled).Returns(true);

            //var sut = new ServiceAvailablityManager(_mockConfiguration.Object);

            var sut = new ServiceAvailabilityFilterService(_mockDosService.Object, _mockConfiguration.Object, _mockServiceAvailabilityProfileManager.Object, _mockFilterServicesFeature.Object);

            //Act
            var result = await sut.GetFilteredServices(fakeRequest, true);

            //Assert 
            _mockDosService.Verify(x => x.GetServices(It.IsAny<HttpRequestMessage>()), Times.Once);
            var JObj = GetJObjectFromResponse(result);
            var services = JObj["CheckCapacitySummaryResult"];
            Assert.AreEqual("{CheckCapacitySummaryResult: [{}]}", result.Content.ReadAsStringAsync().Result);
        }
コード例 #2
0
 public IServiceAvailability FindServiceAvailability(DosFilteredCase dosFilteredCase)
 {
     if (IsDentalDispoition(dosFilteredCase.Disposition))
     {
         return(new DentalServiceAvailability(FindServiceAvailabilityProfile(dosFilteredCase.Disposition), dosFilteredCase.DispositionTime, dosFilteredCase.DispositionTimeFrameMinutes));
     }
     if (IsPrimaryCareDispoition(dosFilteredCase.Disposition))
     {
         return(new PrimaryCareServiceAvailability(FindServiceAvailabilityProfile(dosFilteredCase.Disposition), dosFilteredCase.DispositionTime, dosFilteredCase.DispositionTimeFrameMinutes));
     }
     return(new ServiceAvailability(FindServiceAvailabilityProfile(dosFilteredCase.Disposition), dosFilteredCase.DispositionTime, dosFilteredCase.DispositionTimeFrameMinutes));
 }
コード例 #3
0
        public async void in_hours_should_return_filtered_CheckCapacitySummaryResult()
        {
            var jObj = (JObject)JsonConvert.DeserializeObject(CheckCapacitySummaryResults);
            var results = jObj["CheckCapacitySummaryResult"].ToObject<List<Models.Models.Web.FromExternalServices.DosService>>();

            var fakeDoSFilteredCase = new DosFilteredCase() { PostCode = "So30 2Un", Disposition = 1008, DispositionTime = new DateTime(2016, 11, 23, 9, 30, 0), DispositionTimeFrameMinutes = 60 };
         
            var sut = new ServiceAvailablityManager(_mockConfiguration.Object).FindServiceAvailability(fakeDoSFilteredCase);
            //Act
            var result = sut.Filter(results);

            Assert.AreEqual(1, result.Count());
        }
コード例 #4
0
        public async void non_filtered_disposition_should_return_unfiltered_CheckCapacitySummaryResult()
        {
            var jObj    = (JObject)JsonConvert.DeserializeObject(CheckCapacitySummaryResults);
            var results = jObj["CheckCapacitySummaryResult"].ToObject <List <Models.Models.Business.DosService> >();

            var fakeDoSFilteredCase = new DosFilteredCase()
            {
                PostCode = "So30 2Un", Disposition = 1010
            };

            //Act
            var sut = new ServiceAvailablityManager(_mockConfiguration.Object).FindServiceAvailability(fakeDoSFilteredCase);
            //Act
            var result = sut.Filter(results);

            Assert.AreEqual(3, result.Count());
        }
コード例 #5
0
        public async void Dental_out_of_hours_traversing_in_hours_should_return_filtered_CheckCapacitySummaryResult()
        {
            var jObj    = (JObject)JsonConvert.DeserializeObject(CheckCapacitySummaryResults);
            var results = jObj["CheckCapacitySummaryResult"].ToObject <List <Models.Models.Business.DosService> >();

            var fakeDoSFilteredCase = new DosFilteredCase()
            {
                PostCode = "So30 2Un", Disposition = 1017, DispositionTime = new DateTime(2016, 12, 1, 22, 1, 0), DispositionTimeFrameMinutes = 1440
            };


            var sut = new ServiceAvailablityManager(_mockConfiguration.Object).FindServiceAvailability(fakeDoSFilteredCase);

            //Act
            var result = sut.Filter(results);

            //Assert

            Assert.AreEqual(1, result.Count());
        }
コード例 #6
0
        public async void Dental_No_Blacklited_Services_Returns_All_CheckCapacitySummaryResults()
        {
            _mockConfiguration.Setup(c => c.FilteredDentalDispositionCodes).Returns("");

            var jObj    = (JObject)JsonConvert.DeserializeObject(CheckCapacitySummaryResults);
            var results = jObj["CheckCapacitySummaryResult"].ToObject <List <Models.Models.Business.DosService> >();

            var fakeDoSFilteredCase = new DosFilteredCase()
            {
                PostCode = "So30 2Un", Disposition = 1017, DispositionTime = new DateTime(2016, 11, 23, 7, 31, 0), DispositionTimeFrameMinutes = 720
            };

            var sut = new ServiceAvailablityManager(_mockConfiguration.Object).FindServiceAvailability(fakeDoSFilteredCase);

            //Act
            var result = sut.Filter(results);

            //Assert

            Assert.AreEqual(3, result.Count());
        }
コード例 #7
0
 public HttpRequestMessage BuildRequestMessage(DosFilteredCase dosCase)
 {
     return(new HttpRequestMessage {
         Content = new StringContent(JsonConvert.SerializeObject(dosCase), Encoding.UTF8, "application/json")
     });
 }