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);
        }
 protected InstalledAppManager(ILogger <IInstalledAppManager> logger,
                               ISmartThingsAPIHelper smartThingsAPIHelper)
 {
     _logger = logger ??
               throw new ArgumentNullException(nameof(logger));
     _smartThingsAPIHelper = smartThingsAPIHelper ??
                             throw new ArgumentNullException(nameof(smartThingsAPIHelper));
 }
 public MyInstallUpdateDataHandler(ILogger <IInstallUpdateWebhookHandler> logger,
                                   IOptions <SmartAppConfig> options,
                                   IInstalledAppManager installedAppManager,
                                   ISmartThingsAPIHelper smartThingsAPIHelper,
                                   IStateManager <MyState> stateManager)
     : base(logger, options, installedAppManager, smartThingsAPIHelper)
 {
     _ = stateManager ?? throw new ArgumentNullException(nameof(stateManager));
     this.stateManager = stateManager;
 }
Пример #4
0
 public MyService(ILogger <IMyService> logger,
                  IRootWebhookHandler rootHandler,
                  IStateManager <MyState> stateManager,
                  IInstalledAppManager installedAppManager,
                  ISmartThingsAPIHelper smartThingsAPIHelper)
 {
     _logger               = logger ?? throw new ArgumentNullException(nameof(logger));
     _rootHandler          = rootHandler ?? throw new ArgumentNullException(nameof(rootHandler));
     _stateManager         = stateManager ?? throw new ArgumentNullException(nameof(stateManager));
     _installedAppManager  = installedAppManager ?? throw new ArgumentNullException(nameof(installedAppManager));
     _smartThingsAPIHelper = smartThingsAPIHelper ?? throw new ArgumentNullException(nameof(smartThingsAPIHelper));
 }
Пример #5
0
        public FileBackedInstalledAppManager(ILogger <IInstalledAppManager> logger,
                                             ISmartThingsAPIHelper smartThingsAPIHelper,
                                             IOptions <FileBackedConfig <FileBackedInstalledAppManager> > options,
                                             FileBackedConfigValidator <FileBackedInstalledAppManager> fileBackedConfigValidator,
                                             IFileSystem fileSystem)
            : base(logger, smartThingsAPIHelper)
        {
            _logger = logger ??
                      throw new ArgumentNullException(nameof(logger));
            _fileBackedConfig          = options?.Value ?? throw new ArgumentNullException(nameof(options));
            _fileBackedConfigValidator = fileBackedConfigValidator ?? throw new ArgumentNullException(nameof(fileBackedConfigValidator));
            _fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));

            _fileBackedConfigValidator.ValidateAndThrow(_fileBackedConfig);
        }
Пример #6
0
        public AzureStorageBackedInstalledAppManager(ILogger <IInstalledAppManager> logger,
                                                     ISmartThingsAPIHelper smartThingsAPIHelper,
                                                     IOptions <AzureStorageBackedConfig <AzureStorageBackedInstalledAppManager> > options,
                                                     AzureStorageBackedConfigValidator <AzureStorageBackedInstalledAppManager> storageBackedConfigValidator)
            : base(logger, smartThingsAPIHelper)
        {
            _logger = logger ??
                      throw new ArgumentNullException(nameof(logger));
            _storageBackedConfig = options?.Value ??
                                   throw new ArgumentNullException(nameof(options));
            _storageBackedConfigValidator = storageBackedConfigValidator ??
                                            throw new ArgumentNullException(nameof(storageBackedConfigValidator));

            _storageBackedConfigValidator.ValidateAndThrow(_storageBackedConfig);

            _blobServiceClient = new BlobServiceClient(_storageBackedConfig.ConnectionString);
        }
Пример #7
0
        protected InstallUpdateWebhookHandler(ILogger <IInstallUpdateWebhookHandler> logger,
                                              IOptions <SmartAppConfig> options,
                                              IInstalledAppManager installedAppManager,
                                              ISmartThingsAPIHelper smartThingsAPIHelper)
        {
            _ = logger ??
                throw new ArgumentNullException(nameof(logger));
            _ = options ??
                throw new ArgumentNullException(nameof(options));
            _ = installedAppManager ??
                throw new ArgumentNullException(nameof(installedAppManager));
            _ = smartThingsAPIHelper ??
                throw new ArgumentNullException(nameof(smartThingsAPIHelper));

            this.Logger               = logger;
            this.AppConfig            = options.Value;
            this.InstalledAppManager  = installedAppManager;
            this.SmartThingsAPIHelper = smartThingsAPIHelper;
        }