public async void GetSymptomDisciminator_should_return_a_symptomDiscrimnator_by_id_before_adding_to_cache()
        {
            //Arrange
            var id = 1;
            var symptomDiscriminator = new SymptomDiscriminator()
            {
                Id = id, Description = "A description", ReasoningText = "Some reasoning"
            };
            var response = new Mock <IRestResponse <SymptomDiscriminator> >();

            response.Setup(x => x.IsSuccessful).Returns(true);
            response.Setup(x => x.Data).Returns(symptomDiscriminator);
            var expectedCacheKey = new SymptomDiscriminatorCacheKey(id.ToString());

            _cacheManagerMock.Setup(x => x.Read(It.IsAny <string>())).ReturnsAsync(string.Empty);
            _restClient.Setup(x => x.ExecuteAsync <SymptomDiscriminator>(It.IsAny <IRestRequest>()))
            .ReturnsAsync(response.Object);

            var sut = new SymptomDisciminatorService(_configuration.Object, _restClient.Object, _cacheStoreMock);

            //Act
            var result = await sut.GetSymptomDisciminator(id.ToString());

            //Assert
            _cacheManagerMock.Verify(x => x.Set(expectedCacheKey.CacheKey, It.IsAny <string>()), Times.Once);
            _configuration.Verify(x => x.GetDomainApiSymptomDisciminatorUrl(id.ToString()), Times.Once);
            _restClient.Verify(x => x.ExecuteAsync <SymptomDiscriminator>(It.IsAny <IRestRequest>()), Times.Once);

            Assert.AreEqual(result.Id, id);
        }
        private OutcomeViewModel GenerateMinimumObject()
        {
            SymptomDiscriminator symptomDiscriminator = new SymptomDiscriminator();

            symptomDiscriminator.Description   = "Desc";
            symptomDiscriminator.Id            = 30;
            symptomDiscriminator.ReasoningText = "Reasoning";

            return(new OutcomeViewModel()
            {
                Id = "Dx20",
                SymptomDiscriminator = symptomDiscriminator,
                SymptomDiscriminatorCode = "123",

                UserInfo = new UserInfo
                {
                    Demography = new AgeGenderViewModel
                    {
                        Gender = "M"
                    },
                    CurrentAddress = new FindServicesAddressViewModel
                    {
                        Postcode = "PO57CD"
                    }
                },
                Journey = new Journey
                {
                    Steps = new List <JourneyStep>()
                }
            });
        }
        public async void GetSymptomDisciminator_should_return_a_symptomDiscrimnator_by_id()
        {
            //Arrange
            var url = "http://mytest.com/";
            var id  = 1;
            var symptomDiscriminator = new SymptomDiscriminator()
            {
                Id = id, Description = "A description", ReasoningText = "Some reasoning"
            };
            var response = new Mock <IRestResponse <SymptomDiscriminator> >();

            response.Setup(x => x.IsSuccessful).Returns(true);
            response.Setup(x => x.Data).Returns(symptomDiscriminator);

            _configuration.Setup(x => x.GetDomainApiSymptomDisciminatorUrl(id.ToString())).Returns(url);
            _restClient.Setup(x => x.ExecuteAsync <SymptomDiscriminator>(It.IsAny <IRestRequest>()))
            .ReturnsAsync(response.Object);

            var sut = new SymptomDisciminatorService(_configuration.Object, _restClient.Object, _cacheStoreMock);

            //Act
            var result = await sut.GetSymptomDisciminator(id.ToString());

            //Assert
            _configuration.Verify(x => x.GetDomainApiSymptomDisciminatorUrl(id.ToString()), Times.Once);
            _restClient.Verify(x => x.ExecuteAsync <SymptomDiscriminator>(It.IsAny <IRestRequest>()), Times.Once);

            Assert.AreEqual(result.Id, id);
        }