public SmartThingsAPIHelperTests(ITestOutputHelper output) { _mockLogger = new Mock <ILogger <ISmartThingsAPIHelper> >(); _mockLogger.Setup(log => log.Log(It.IsAny <LogLevel>(), It.IsAny <EventId>(), It.IsAny <object>(), null, It.IsAny <Func <object, Exception, string> >())) .Callback <LogLevel, EventId, object, Exception, Func <object, Exception, string> >((logLevel, e, state, ex, f) => { output.WriteLine($"{logLevel} logged: \"{state}\""); }); var smartAppConfig = new SmartAppConfig() { SmartAppClientId = "SACLIENTID", SmartAppClientSecret = "SACLIENTSECRET" }; _mockOptions = new Mock <IOptions <SmartAppConfig> >(); _mockOptions.Setup(opt => opt.Value) .Returns(smartAppConfig); _mockHttpMessageHandler = new Mock <HttpMessageHandler>(); _mockHttpClient = _mockHttpMessageHandler.CreateClient(); _smartThingsAPIHelper = new SmartThingsAPIHelper(_mockLogger.Object, _mockOptions.Object, _mockHttpClient); }
public SmartThingsAPIHelper(ILogger <ISmartThingsAPIHelper> logger, IOptions <SmartAppConfig> options, HttpClient httpClient) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _appConfig = options?.Value ?? throw new ArgumentNullException(nameof(options)); _httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); }