public async Task When_Device_Is_Fresh_No_Refresh_Is_Triggered() { using var cache = new TestDeviceCache(this.quickRefreshOptions); using var device = CreateTestDevice(); device.LastUpdate = DateTime.UtcNow + TimeSpan.FromMinutes(1); cache.Register(device); using var cts = new CancellationTokenSource(this.quickRefreshOptions.ValidationInterval * 2); await Assert.ThrowsAsync <OperationCanceledException>(() => cache.WaitForRefreshAsync(cts.Token)); }
public async Task When_Device_Expires_It_Is_Refreshed() { var moqCallback = new Mock <Action <LoRaDevice> >(); using var cache = new TestDeviceCache(moqCallback.Object, this.quickRefreshOptions, true); var deviceMock = CreateMockDevice(); var disposableMock = new Mock <IDisposable>(); deviceMock.Setup(x => x.BeginDeviceClientConnectionActivity()) .Returns(disposableMock.Object); var device = deviceMock.Object; cache.Register(device); await cache.WaitForRefreshAsync(CancellationToken.None); moqCallback.Verify(x => x.Invoke(device)); disposableMock.Verify(x => x.Dispose(), Times.Once); }