public AppScopedHaContextProvider(IObservable <HassEvent> hassEventObservable,
                                          EntityStateCache entityStateCache,
                                          EntityAreaCache entityAreaCache,
                                          IHassClient hassClient)
        {
            _entityStateCache = entityStateCache;
            _entityAreaCache  = entityAreaCache;
            _hassClient       = hassClient;

            // Create ScopedObservables for this app
            // This makes sure we will unsubscribe when this ContextProvider is Disposed
            _scopedEventObservable = new ScopedObservable <HassEvent>(hassEventObservable);
            _scopedStateObservable = new ScopedObservable <HassStateChangedEventData>(_entityStateCache.StateAllChanges);
        }
Exemplo n.º 2
0
        public async Task CloseAsyncIsRanOnce()
        {
            // ARRANGE
            var mock = new HassWebSocketMock();

            // Get the connected hass client
            await using IHassClient hassClient = await mock.GetHassConnectedClient().ConfigureAwait(false);

            await hassClient.CloseAsync().ConfigureAwait(false);

            // ASSERT
            mock.Verify(
                x => x.CloseOutputAsync(It.IsAny <WebSocketCloseStatus>(),
                                        It.IsAny <string>(), It.IsAny <CancellationToken>()),
                Times.Once);
        }