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); }
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); }