Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }