public WordCounterService(IDefinitionsApiService definitionsApiService,
                           IWordProcessorService wordProcessorService, ILogger <WordCounterService> logger)
 {
     _definitionsApiService = definitionsApiService;
     _wordProcessorService  = wordProcessorService;
     _logger = logger;
 }
        public void Setup()
        {
            // Initialize the mocks
            _repository         = new MockRepository(MockBehavior.Strict);
            _optionsMock        = _repository.Create <IOptions <DefinitionApiConfiguration> >();
            _loggerMock         = _repository.Create <ILogger <DefinitionsApiService> >();
            _messageHandlerMock = _repository.Create <HttpMessageHandler>();
            _clientFactoryMock  = _repository.Create <IHttpClientFactory>();

            //Setup the common methods.
            _optionsMock.Setup(x => x.Value).Returns(new DefinitionApiConfiguration());
            _loggerMock.Setup(x => x.LogDebug(It.IsAny <string>(), It.IsAny <string>()));

            var httpClient = new HttpClient(_messageHandlerMock.Object)
            {
                BaseAddress = new Uri("https://someurl.com")
            };

            _clientFactoryMock.Setup(x => x.CreateClient(It.IsAny <string>())).Returns(httpClient);

            _definitionsDataService =
                new DefinitionsApiService(_optionsMock.Object, _clientFactoryMock.Object, _loggerMock.Object);
        }